2017-08-15 95 views
0

我在泊坞窗,撰写文件中指定的文件包膜accounts.env无法读取泊坞窗环境文件的内容的Node.js

version: "3.3" 
services: 
    web: 
    env_file: accounts.env 
    build: 
     context: . 
     dockerfile: Dockerfile.test 
    depends_on: 
     - mysql 
    volumes: 
     - .:/app 
     - /app/node_modules 
    ports: 
     - 3000:3000 
    mysql: 
    image: mysql:5.5 
    environment: 
     - MYSQL_ROOT_PASSWORD=*** 
     - MYSQL_DATABASE=*** 
     - MYSQL_USER=*** 
     - MYSQL_PASSWORD=*** 
    ports: 
     - 3306:3306 
    migrations: 
    image: micheleminno/db-migrations:latest 
    environment: 
     - NODE_ENV=development 
    depends_on: 
     - mysql 

这是ENV文件:

accountSize = 28 

user1screenName = *** 

... 

这里是一个Node.js代码的例子,我在这里读取env文件中定义的一些环境变量:

... 

if (credentialsIndex < process.env.accountSize) { 

... 

我的问题是对象process.env不包含我指定的变量。有谁知道为什么?

+1

你有没有试过在'.env'文件中去掉'='周围的空格?我相信这就是为什么你的变量没有显示出来 – shiv

+0

谢谢,这是! –

回答

0

这里有两件事。如果我运行下面的撰写文件

version: "3.3" 
services: 
    web: 
    env_file: accounts.env 
    image: node 
    command: node -e 'console.log(process.env);' 

输出是

web_1 | { PATH: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', 
web_1 | HOSTNAME: 'd207b3388203', 
web_1 | 'user1screenName ': ' tarun', 
web_1 | 'accountSize ': ' 28', 
web_1 | NPM_CONFIG_LOGLEVEL: 'info', 
web_1 | NODE_VERSION: '8.3.0', 
web_1 | YARN_VERSION: '0.27.5', 
web_1 | HOME: '/root' } 

正如你可以看到accountSize会得到一个空间,你一个=,也是环境的名称后添加accountSize与最后一个空间。这意味着您需要使用process.env["accountSize "]访问它。无论如何修复环境文件,前后没有空间。