node.js - docker compose up sırasında dist klasörüne .env.example ekle
Bir .env ve bir .env.example dosyası oluşturmak ve bunları Dockerfile ile docker build sırasında docker imajına göndermek istiyorum. Sorun şu ki, .env.example dosyası docker imajına kopyalanmıyor. Normal env ile çalıştığını sanıyorum, çünkü env.production'ı kopyalayıp env olarak kaydediyorum. Ancak node.js ve typescript kullanıyorum. Çoğu insanın bildiği gibi, kodda env değişkenlerini kullanmanın bir yolu env.d.ts ve env.example oluşturmaktır. Ne yazık ki docker compose sırasında o hatayı alıyorum.
no such file or directory, open '.env.example'
Görünüşe göre env.example dist klasörüne kopyalanmamış. Ama buna ihtiyacım var.
Dockerfile
stage 1 building the code
FROM node as builder
WORKDIR /usr/app
COPY package*.json ./
RUN npm install
COPY . .
COPY .env.production .env
RUN npm run build
COPY .env.example ./dist
stage 2
FROM node
WORKDIR /usr/app
COPY package*.json ./
RUN npm install --production
COPY --from=builder /usr/app/dist ./dist
COPY ormconfig.docker.json ./ormconfig.json
EXPOSE 4000
CMD node dist/index.js
.dockerignore
node_modules
docker-compose.yaml
version: "3.7"
services:
db:
image: postgres
environment:
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
POSTGRES_DB: postgres
volumes:
- ./pgdata:/var/lib/postgresql/data
ports:
- "5432:5432"
web:
build:
context: ./
dockerfile: ./Dockerfile
depends_on:
- db
ports:
- "4000:4000"
volumes:
- ./src:/src
Acaba biri bana yardım edebilir mi lütfen!