পৃথক ডিরেক্টরিতে ব্যবহার করুন 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 ডকার-রচনা থেকে কিছু দ্রুত কমান্ড রয়েছে । নিশ্চিত হয়ে নিন যে আপনি আরও তথ্যের জন্য অফিসিয়াল ডকুমেন্টেশনটি উল্লেখ করেছেন ।