tek bir liman işçisi konteynırında değil, evet n liman işçisi konteynırında.
Teorik olarak, tüm geliştirme ortamınızı tek bir kapta toplayabilseniz de, liman işçisinin bunu yapması amaçlanmamıştı.
Bunun yerine, docker compose kullanarak , tüm altyapınızı tek bir dosyada yöneten, her hizmetin kendi günlük dosyasına, kullanıcı alanına, ağa vb. Sahip olacağı her hizmeti ayrı kaplara dağıtmanız gerekir .
Size bir örnek vereyim, bu bir taslağım docker-compose.yml
version: '2'
services:
myproxy:
build: myproxy
container_name: ppproxy
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
networks:
default:
aliases:
- www.domain1.it
- www.domain2.it
- www.domain4.it
mydb1:
build: mydb
environment:
DB_USER: sdffdssdf
DB_PASSWORD: fdsfsdsdf
DB_NAME: dbanme1
DB_ENCODING: UTF-8
VIRTUAL_HOST: myhost1.net.lan
VIRTUAL_PORT: 5432
mydb2:
build: mydb
environment:
DB_USER: ssdfsdfs
DB_PASSWORD: sffdssd
DB_NAME: dbanme2
DB_ENCODING: UTF-8
VIRTUAL_HOST: myhost2.net.lan
VIRTUAL_PORT: 5432
www:
image: myimages/oldservice:v1.1
container_name: www
command: /bin/bash /root/launch
environment:
VIRTUAL_HOST: www.domain1.it
VIRTUAL_PORT: 80
ports:
- 80
depends_on:
- mydb1
- mydb1
- myws
myws:
build: myjettycontainer
environment:
HTTPS_METHOD: noredirect
VIRTUAL_HOST: www.domain2.it
VIRTUAL_PORT: 8080
ports:
- 8080
depends_on:
- mydb1
- mydb2
- myproxy
- mypostfix
mypostfix:
image: catatnight/postfix
container_name: mailer
environment:
maildomain: domain1.it
smtp_user: mymail:sfsfdfds
ports:
- 25
Bir nginx proxy (myproxy), iki benzer postgres veritabanı (mydb1 ve 2), eski bir java web uygulama sunucusu (www), bir dinlenme web hizmeti sağlayan bir java iskelesi kabı ve son olarak çok basit bir SMTP postfix kabı vardır.
Her şey başlar - genellikle :) - docker-compose up
dev makinemde veya üretimde; günlük dosyaları okunması kolay tek bir dosyada toplanır ve dizüstü bilgisayarımda çalışırsa çalışacağını garanti ederek hemen hemen her işlevselliği yerel olarak çoğaltmak mümkündür.