Docker newb ie здесь, так что моя терминология может быть немного неправильной, но я пытаюсь сделать это правильно.
В настоящее время у меня есть 2 отдельных проекта на основе python, каждый со своим docker-compose.yml
файла, и я хочу, чтобы один из них был включен вместе с другим. (Проблема?) Я смущен тем, что каждый из них использует одни и те же порты / зависимости, когда запускается самостоятельно, поэтому, если объединить их, это вызовет проблему? Тоесть я должен был бы изменить один, чтобы он вписался в другой? Nginx, средство обеспечения безопасности и zookeeper - это те, которые появляются при совместном использовании
В идеале я хотел бы просто добавить
A:
image: <CDN>/A:latest
к B docker-compose.yml
, а не Я должен изменить A one
Надеюсь, это имеет смысл, но я отредактирую / предоставлю более подробную информацию, если потребуется. Упрощенные docker -compose.yml файлы ниже
Проект A
version: '3.6'
services:
A:
build:
context: .
args:
CI: $CI # used to indicate if the build is run in a CI environment
volumes:
- .:/usr/src/app
environment:
POSTGRES_USER: test
POSTGRES_PASSWORD: password
ZK_ANNOUNCEMENT_CONTEXT: /services/apps/A/1.1
depends_on:
- zookeeper
- postgres
file-service:
image: <CDN>/file-service:latest
environment:
AWS_ENDPOINT_URL: http://s3.amazonaws.com:4567 # actually fake s3, see links
POSTGRES_USER: test
POSTGRES_PASSWORD: password
DB_HOST: postgres
depends_on:
- kafka
- zookeeper
- postgres
- fakes3
links:
- fakes3:s3.amazonaws.com
nginx:
image: <CDN>/docker/backend:nginx-1.11.12-alpine
depends_on:
- akit
- nginx-fs-proxy
volumes:
- ./docker/nginx/templates/ssl.d/:/etc/nginx/templates/ssl.d/:ro
nginx-fs-proxy: # nginx proxy to file-service for handling SSL w/direct requests
image: <CDN>/docker/backend:nginx-1.11.12-alpine
volumes:
- ./docker/nginx-fs-proxy/default.conf:/etc/nginx/nginx.conf
depends_on:
- file-service
- fakes3
links:
- fakes3:s3.amazonaws.com
security-tool:
image: <CDN>/security-tool:1.1.7
volumes:
...
environment:
...
depends_on:
...
fakes3:
image: elselabsio/fakes3
postgres:
image: postgres:9.5.4
environment:
POSTGRES_USER: test
POSTGRES_PASSWORD: password
volumes:
- ./docker/postgres:/docker-entrypoint-initdb.d
kafka:
image: wurstmeister/kafka:0.10.0.0
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_HOST: "kafka"
KAFKA_ADVERTISED_PORT: "9092"
KAFKA_ZOOKEEPER_CONNECT: "zookeeper:2181"
KAFKA_CREATE_TOPICS: test-topic:1:1
depends_on:
- zookeeper
zookeeper:
image: wurstmeister/zookeeper:3.4.6
ports:
- "2181:2181"
############################################################
# start-dependencies
#
# This service waits for other services to become availalbe
# before staring and exiting successfully.
#
# https://8thlight.com/blog/dariusz-pasciak/2016/10/17/docker-compose-wait-for-dependencies.html
############################################################
start-dependencies:
image: dadarek/wait-for-dependencies:0.1
depends_on:
- zookeeper
- security-tool
- postgres
- nginx
command: >
zookeeper:2181 \
security-tool:8443 \
postgres:5432 \
nginx:443
Проект B
version: '3.6'
services:
B:
build:
context: .
args:
CI: $CI # used to indicate if the build is run in a CI environment
volumes:
- .:/usr/src/app
environment:
LOG_LEVEL: "INFO"
depends_on:
- zookeeper
- es01.docker
- kafka
nginx: # proxy to microservice ecosystem
image: <CDN>/backend:nginx-1.11.12-alpine
volumes:
- ./docker/nginx/templates/ssl.d/:/etc/nginx/templates/ssl.d/:ro
es01.docker:
image: docker.elastic.co/elasticsearch/elasticsearch:6.8.1
environment:
...
ulimits:
memlock:
soft: -1
hard: -1
security-tool:
image: <CDN>/security-tool:1.1.7
volumes:
...
environment:
...
depends_on:
- zookeeper
kafka:
image: wurstmeister/kafka:0.10.0.0
environment:
KAFKA_ADVERTISED_HOST: "kafka"
KAFKA_ADVERTISED_HOST_NAME: "kafka" # "localhost" for local development
KAFKA_ADVERTISED_PORT: "9092"
KAFKA_ADVERTISED_LISTENERS: "PLAINTEXT://kafka:9092" # "PLAINTEXT://localhost:9092" for local development
KAFKA_ZOOKEEPER_CONNECT: "zookeeper:2181"
KAFKA_CREATE_TOPICS: "test-topic:1:1"
depends_on:
- zookeeper
ports:
- "9092:9092"
- "29092:29092"
zookeeper:
image: wurstmeister/zookeeper:3.4.6
############################################################
# start-dependencies
#
# This service waits for other services to become availalbe
# before staring and exiting successfully.
#
# https://8thlight.com/blog/dariusz-pasciak/2016/10/17/docker-compose-wait-for-dependencies.html
############################################################
start-dependencies:
image: dadarek/wait-for-dependencies:0.1
depends_on:
- zookeeper
- security-tool
- nginx
- es01.docker
- B
- kafka
command: >
zookeeper:2181 \
security-tool:8443 \
es01.docker:9200 \
B:8000 \
kafka:9092 \
nginx:443