首页 > 解决方案 > 如何将环境变量传递给 Dockerfile for db?

问题描述

我使用 node、express 和 postgres 创建了 api,并将其 docker 化,现在一切正常。

但我被要求在 Dockerfile 中执行此操作:“接受数据库作为环境变量”。

我需要怎么做?

我的 Dockerfile:

FROM node:12.12.0-alpine

WORKDIR /app

COPY package*.json ./ 
RUN npm install
COPY . . 

EXPOSE 3000

CMD [ "npm", "start" ] 

我的 docker-compose.yml:

version: "3"
services:
  app:
    build: .
    restart: always
    command: sh -c "npm start"
    ports:
      - 3000:3000
    working_dir: /app
    depends_on:
      - db
    environment:
      - DATABASE_URL=postgres://root:password@db:5432/chargeflow
  db:
    image: postgres
    environment:
      - POSTGRES_USER=root
      - POSTGRES_PASSWORD=password
      - POSTGRES_DB=chargeflow
    volumes:
      - ./db/data/postgres:/var/lib/postgresql/data
    ports:
      - 5432:5432

谢谢!

标签: databasepostgresqldockerdocker-composedockerfile

解决方案


推荐阅读