database - 如何将环境变量传递给 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
谢谢!
解决方案
推荐阅读
- graphql - GraphQL:当父级为空时,响应中没有可用的子级/嵌套数据?
- go - 使用elasticsearch原子操作更新
- sql - 如何正确编写此查询?
- reactjs - 错误:找不到样式目标。它开始出现在带有 React 实现的 SSR 之后。怎么修?
- python - 如何确定可执行文件是否从活动 shell 中启动?
- applescript - (AppleScript)是否可以编写一个对话框,每次看到它时都会显示一个随机字符串?
- javascript - 上传的图片没有返回到 PHP
- android - 除了android中的活动之外,还有什么是调用网络类的好方法?
- javascript - 在javascript中隐藏时显示/隐藏和清除单选按钮值
- javascript - 需要 antd 表单的语言环境支持标记