Tôi hiểu rằng bạn có thể sử dụng docker-compose với lệnh scale để quay lên nhiều vùng chứa. Tuy nhiên, tất cả chúng sẽ có cùng cấu hình được sử dụng.Sử dụng Docker-Compose để quay lên nhiều phiên bản của vùng chứa với các cấu hình khác nhau
Có thể khởi chạy vùng chứa trên cùng một máy chủ với các cấu hình khác nhau (khác nhau .yml
tệp) trên cùng một máy chủ không?
Sử dụng các lệnh sau:
docker-compose -f dev.yml up -d
docker-compose -f qa.yml up -d
chỉ qa.yml
container sẽ được chạy, mà không phải là những gì tôi muốn.
- chỉnh sửa -
Đây là những gì xảy ra khi tôi thử chạy cả hai lệnh.
$ docker-compose -f compose/dev.yml up -d
compose_mydocker_1 is up-to-date
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
905912df6e48 compose_mydocker "/sbin/my_init" 2 days ago Up 2 days 0.0.0.0:1234->80/tcp compose_mydocker_1
$ docker-compose -f compose/qa.yml up -d
Recreating compose_mydocker_1...
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3fc912201224 compose_mydocker "/sbin/my_init" 5 seconds ago Up 5 seconds 0.0.0.0:1235->80/tcp compose_mydocker_1
My qa.yml
và dev.yml
cái nhìn như thế này:
mydocker:
build: ..
ports:
- "1234:80" #for dev.yml
#- "1235:80" for qa.yml
environment:
- ENVIRONMENT=dev #and vice-versa for qa
volumes:
- ../assets/images:/var/www/assets
Điều gì xảy ra khi bạn chạy cả hai lệnh? Và câu hỏi phụ: tại sao bạn cần cả hai cấu hình để chạy cùng một lúc trên cùng một máy chủ? – Opal
bạn có thể dán nhật ký từ khởi động docker-compose 'dev' và' qa'. nếu 'dev' được chạy đầu tiên, tôi đã mong đợi' qa' đã chết vì các cổng đã được sử dụng. – booyaa
Tôi sẽ thêm thông tin được yêu cầu vào câu hỏi! @Opal: Tôi muốn chạy cả hai môi trường trên 1 máy chủ cho mục đích thử nghiệm. "dev" là môi trường mà các dev làm việc (có thể bị hỏng) và "qa" là các môi trường QA thực hiện kiểm tra sau khi xây dựng làm cho nó ra khỏi 'dev' – Nepoxx