[英]Passing NODE_ENV from package.json to Docker-compose
我正在嘗試將 NODE_ENV=profiling-local 從 package.jso 傳遞到 Docker-compose 然后運行腳本,但它沒有接受它並且 process.env.NODE_ENV= undefined 即將到來。
我的 docker-compose 文件:
version: "2"
services:
logs_db:
image: postgres
ports:
- "5434:5432"
expose:
- "5434"
volumes:
- data:/var/lib/postgresql/data
- ./db/setup.sql:/docker-entrypoint-initdb.d/seed.sql
networks:
- liven
environment:
POSTGRES_HOST_AUTH_METHOD: trust,
NODE_ENV: ${NODE_ENV}
event_engine:
build:
context: .
dockerfile: Dockerfile
entrypoint:
- 'sh'
- '-c'
- 'yarn install && yarn watch'
volumes:
- .:/src/app/
- /src/app/node_modules/
links:
- logs_db
depends_on:
- logs_db
networks:
- liven
volumes:
data:
driver: local
node_modules_volume:
我的 package.json
{
"name": "event-engine",
"version": "1.0.0",
"description": "event engine",
"main": "src/index.js",
"author": "DT Starts",
"license": "MIT",
"private": true,
"scripts": {
"watch": "nodemon -L --exec babel-node src/index.js --config nodemon.json",
"start": "node ./dist/index.js",
"build": "babel src -d dist",
"dev": "docker-compose up",
"profiling":"NODE_ENV=profiling-local docker-compose up"
},
"devDependencies": {
"@babel/cli": "^7.12.1",
"@babel/core": "^7.12.3",
"@babel/node": "^7.12.1",
"@babel/plugin-proposal-class-properties": "^7.12.1",
"@babel/preset-env": "^7.12.1",
"@babel/register": "^7.12.1",
"babel-eslint": "^10.1.0",
"babel-plugin-module-resolver": "^4.0.0",
"eslint": "^6.8.0",
"eslint-config-airbnb": "^18.0.1",
"eslint-plugin-babel": "^5.3.0",
"eslint-plugin-import": "^2.20.1",
"nodemon": "^2.0.2",
"pino":"^6.11.2",
"dotenv": "^8.2.0"
},
"dependencies": {
"pg": "^7.18.2",
"redux": "^4.0.5",
"socketcluster-client": "^16.0.1",
"uuid": "^8.3.1"
}
}
之后,但在我的 index.js 文件中,process.env.NOD_ENV 未定義。 我已經嘗試了幾乎所有方法將環境變量從 pacakge.json 的腳本以及我的 node.js 代碼可以使用的地方傳遞給 docker-compose 文件,但它是未定義的。
您沒有指定如何運行此撰寫文件,但我猜您沒有通過 build-arg:
docker-compose up --build-arg NODE_ENV=<value>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.