после некоторого поиска в Google, я обнаружил, что, как сказал @sauerburger в комментариях, лучше иметь один процесс на контейнер.
Но иметь несколько контейнеров для каждого моего основного приложения с определенным аргументом (т. Е. Одиндля основного приложения и одного для рабочего) Мне нужно иметь несколько Dockerfiles.в моем docker-compose я могу ссылаться на них по отдельности.
но как использовать разные dockerfiles для проекта?
предпочтительным решением является наличие каталога docker, в котором каждая часть имеет свой собственныйпапка.для моего приложения это будет выглядеть так:
- docker
- web
-Dockerfile
- worker
-Dockerfile
, тогда в каждом Dockerfile у меня будет общая точка входа и отдельный cmd:
-in web Dockerfile :
- ENTRYPOINT ["/path_to_my_app/myapp"]
- CMD ["web"]
-in worker Dockerfile :
- ENTRYPOINT ["/path_to_my_app/myapp"]
- CMD ["worker"]
, после этого мой файл docker-compose будетссылаться на них так:
version: '3'
services:
web:
# will build ./docker/web/Dockerfile
build: ./docker/web
ports:
- "8090:8090"
worker:
# will build ./docker/worker/Dockerfile
build: ./docker/worker
ports:
- "8091:8091"