簡體   English   中英

將 NODE_ENV 從 package.json 傳遞到 Docker-compose

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM