अलग-अलग निर्देशिकाओं में उपयोग docker-compose
और कईDockerfile
नाम न बदलें अपनेDockerfile
को Dockerfile.db
या Dockerfile.web
, यह आपके आईडीई द्वारा समर्थित नहीं किया जा सकता है और आप वाक्य रचना हाइलाइटिंग खो देंगे।
जैसा कि किंग्सले उचनोर ने कहा , आपके पास कई Dockerfile
, एक प्रति निर्देशिका हो सकती है, जो आपके द्वारा बनाई गई कुछ चीज़ों का प्रतिनिधित्व करती है।
मुझे एक docker
फ़ोल्डर रखना पसंद है जो प्रत्येक एप्लिकेशन और उनके कॉन्फ़िगरेशन को रखता है। एक डेटाबेस के लिए एक वेब एप्लिकेशन के लिए एक उदाहरण प्रोजेक्ट फ़ोल्डर पदानुक्रम है।
docker-compose.yml
docker
├── web
│ └── Dockerfile
└── db
└── Dockerfile
docker-compose.yml
उदाहरण:
version: '3'
services:
web:
# will build ./docker/web/Dockerfile
build: ./docker/web
ports:
- "5000:5000"
volumes:
- .:/code
db:
# will build ./docker/db/Dockerfile
build: ./docker/db
ports:
- "3306:3306"
redis:
# will use docker hub's redis prebuilt image from here:
# https://hub.docker.com/_/redis/
image: "redis:alpine"
docker-compose
कमांड लाइन उपयोग उदाहरण:
# The following command will create and start all containers in the background
# using docker-compose.yml from current directory
docker-compose up -d
# get help
docker-compose --help
मामले में आपको अपने डॉकरफाइल के निर्माण के दौरान पिछले फ़ोल्डरों की फ़ाइलों की आवश्यकता होती है
तुम अब भी ऊपर समाधान का उपयोग करें और अपने जगह कर सकते हैं Dockerfile
जैसे एक निर्देशिका में docker/web/Dockerfile
, आप सभी की जरूरत का निर्माण स्थापित करने के लिए है context
अपने में docker-compose.yml
इस तरह:
version: '3'
services:
web:
build:
context: .
dockerfile: ./docker/web/Dockerfile
ports:
- "5000:5000"
volumes:
- .:/code
इस तरह, आप इस तरह की चीजें कर पाएंगे:
config-on-root.ini
docker-compose.yml
docker
└── web
├── Dockerfile
└── some-other-config.ini
और ./docker/web/Dockerfile
इस तरह:
FROM alpine:latest
COPY config-on-root.ini /
COPY docker/web/some-other-config.ini /
यहाँ tldr docker-compose से कुछ क्विक कमांड दिए गए हैं । सुनिश्चित करें कि आप अधिक विवरण के लिए आधिकारिक दस्तावेज देखें।