2016-10-04 22 views
5

Trong tôi Docker-soạn có một định nghĩa nginx Proxy container:Chia sẻ trong nhiều Docker soạn

nginx-proxy: 
    image: jwilder/nginx-proxy 
    ports: 
    - "80:80" 
    volumes: 
    - /var/run/docker.sock:/tmp/docker.sock:ro 

Tôi muốn xác định thùng chứa này trong nhiều tập tin Docker-compose.yml (một cho mỗi dự án) .

Làm cách nào tôi có thể làm điều đó, mà không dừng lại mỗi khi vùng chứa (vì đang sử dụng cổng 80)? Ý tưởng là: nếu không có nginx-proxy vùng chứa đang chạy, hãy chạy ứng dụng này, nếu không hãy sử dụng tiện ích đang chạy.

+0

Bạn có đang sử dụng thông số Compose v2 không? –

+0

Có. ... [Viết các ký tự không thích hợp để đi] ... –

+0

Tôi nghĩ bạn sẽ cần một tập lệnh. Một cái gì đó như: ping hoặc kiểm tra nginx của bạn bằng cách sử dụng cổng 80, nếu nó không phải là lên, chạy docker-compose chạy nginx-proxy để tạo ra một. – levi

Trả lời

-1

Bạn có thể có một nginx cho tất cả các dự án của mình. Trong trường hợp đó, bạn cần phải có tệp only_nginx/docker-compose.yml nơi bạn có] nginx dịch vụ và sử dụng

projectx_service: 
    extends: 
     file: /path_to/only_nginx/docker-compose.yml 
     service: nginx-proxy 
    ... 

loại khối này trong mọi tệp docker-compose của dự án.

Ví dụ:

only_nginx/Docker-compose.yml:

nginx-proxy: 
image: jwilder/nginx-proxy 
ports: 
    - "80:80" 
volumes: 
    - /var/run/docker.sock:/tmp/docker.sock:ro  

project1/Docker-compose.yml

project1_service: 
    extends: 
     file: /path_to/only_nginx/docker-compose.yml 
     service: nginx-proxy 
    ... 

project2/Docker-soạn. yml

project2_service: 
    extends: 
     file: /path_to/only_nginx/docker-compose.yml 
     service: nginx-proxy 
    ... 
+0

Điều này không giải quyết vấn đề ban đầu, nhưng chỉ tránh trùng lặp mã. Nếu tôi chạy 'docker-compose up' trên cả hai dự án, trước tiên là ok, thứ hai luôn cho tôi biết" ... Bind for 0.0.0.0:80 không thành công: cổng đã được cấp phát ". Hơn nữa, từ khóa 'extends' không còn được dùng trong Docker Compose v3 –

Các vấn đề liên quan