@Caster97
Разработчик

Как использовать docker volume, если используешь docker образ из dockerhub?

Деплою свой проект используя docker compose. В данный момент мой проект билдится локально, из локальных папок с проектами. В докере используется сервис Laravel, сервис VueJS, сервис NGINX, сервис Mysql и сервис Redis.
Я настраивал файл docker compose по статье из digital ocean. Вопрос заключается в следующем. В статье необходимо было создавать тома(volume) которые связывали файлы моего приложения локально с файлами контейнера, но как мне быть, если я хочу билдить свой проект с помощью докерхаб, ведь так,у меня уже не будут храниться файлы локально.
Я пробовал без этих томов в backend и webserver, но тогда без каких либо ошибок при сборке я не могу достучаться до сервера по локалхосту.
Мне просто необходимо пушить образ сразу с томом? Вот мой compose.yml:

version: '3'
services:
#VueJS Service
frontend:
build: ./frontend
container_name: frontend
restart: unless-stopped
tty: true
environment:
SERVICE_NAME: frontend
working_dir: /var/www/frontend
ports:
- "3000:80"
volumes:
- ./frontend/:/var/www/frontend
- ./frontend/node_modules:/var/www/frontend/node_modules
networks:
- backend-network

#PHP Service
backend:
build: ./backend
container_name: backend
restart: unless-stopped
tty: true
environment:
SERVICE_NAME: backend
SERVICE_TAGS: dev
working_dir: /var/www
volumes:
- ./backend/:/var/www
- ./backend/php/local.ini:/usr/local/etc/php/conf.d/local.ini
networks:
- backend-network

#Nginx Service
webserver:
image: nginx:alpine
container_name: webserver
restart: unless-stopped
tty: true
ports:
- "443:443"
- "8080:8080"
volumes:
- ./backend/:/var/www
- ./backend/nginx/conf.d/:/etc/nginx/conf.d/
networks:
- backend-network

#MySQL Service
db:
image: mysql:5.7.22
container_name: db
restart: unless-stopped
tty: true
ports:
- "33062:3306"
environment:
MYSQL_DATABASE: qcortex
MYSQL_ROOT_PASSWORD: kc3wcfjk5
SERVICE_TAGS: dev
SERVICE_NAME: mysql
volumes:
- dbdata:/var/lib/mysql
- ./backend/mysql/my.cnf:/etc/mysql/my.cnf
networks:
- backend-network

#Redis
redis:
image: caster977/redis
restart: unless-stopped
container_name: redis
networks:
- backend-network

#Docker Networks
networks:
backend-network:
driver: bridge

#Volumes
volumes:
dbdata:
driver: local
  • Вопрос задан
  • 186 просмотров
Решения вопроса 1
@mureevms
как мне быть, если я хочу билдить свой проект с помощью докерхаб


Просто создать каталог dbdata и пробросить его в контейнер, отказавшись от волюмов:
db:
  image: mysql:5.7.22
   <...>
  volumes:
    - ./dbdata:/var/lib/mysql
    - ./backend/mysql/my.cnf:/etc/mysql/my.cnf


я не могу достучаться до сервера по локалхосту


Не связано с волюмами, ищите причины в конфигурации docker-compose
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы