১️⃣ .env ফাইল ব্যবহার করা (default)
- প্রকল্প root-এ
.envফাইল বানাও উদাহরণ:
# .env
SPRING_PROFILES_ACTIVE=docker
SPRING_DATASOURCE_URL=jdbc:postgresql://postgres:5432/dbname
SPRING_DATASOURCE_USERNAME=postgres
SPRING_DATASOURCE_PASSWORD=postgres
SPRING_REDIS_HOST=localhost
SPRING_REDIS_PORT=6379
- docker-compose.yml-এ ব্যবহার করা
Compose auto-load করে
.envফাইল:
services:
app:
build: .
container_name: blogger-app
environment:
SPRING_PROFILES_ACTIVE: ${SPRING_PROFILES_ACTIVE}
SPRING_DATASOURCE_URL: ${SPRING_DATASOURCE_URL}
SPRING_DATASOURCE_USERNAME: ${SPRING_DATASOURCE_USERNAME}
SPRING_DATASOURCE_PASSWORD: ${SPRING_DATASOURCE_PASSWORD}
SPRING_REDIS_HOST: ${SPRING_REDIS_HOST}
SPRING_REDIS_PORT: ${SPRING_REDIS_PORT}
✅ .env ফাইল ব্যবহার করলে Compose auto-load করে এবং secret বা config আলাদা রাখা যায়।
২️⃣ Custom environment file ব্যবহার করা
.env ছাড়া তুমি চাইলে custom env ফাইল ব্যবহার করতে পারো। ধরো docker.env নামে ফাইল:
# docker.env
SPRING_PROFILES_ACTIVE=docker
SPRING_DATASOURCE_URL=jdbc:postgresql://postgres:5432/practice_spring_boot_jdk21
...
docker-compose.yml-এ link করো:
services:
app:
build: .
container_name: blogger-app
env_file:
- docker.env
এখানে
env_fileব্যবহার করলে Compose container-এ সব variable auto inject হবে।.envফাইলের মতো${VAR_NAME}substitution দরকার নেই।
৩️⃣ Extra Tips
env_filemultiple files নিতে পারে:
env_file:
- common.env
- dev.env
-
যদি local development আর production আলাদা environment থাকে, আলাদা env file রাখো:
.env.development.env.production- তারপর
docker-compose --env-file .env.production up -d
-
Secret/Password-গুলো production এ কখনো git এ commit করো না,
.gitignoreব্যবহার করো।
মন্তব্যসমূহ
একটি মন্তব্য পোস্ট করুন
আপনার সমস্যাটি কমেন্ট করে আমাদের জানান :-d