Docker .env变量编写脚本

时间:2019-06-05 08:33:13

标签: shell docker docker-compose environment-variables dockerfile

我制作了一个.env文件,其中包含一些变量:

WS_PORT=12345

现在配置docker-compose.yml的方式是:

  gateway:
    build:
      context: ./src/WebSocket
      dockerfile: Dockerfile
    image:sn-gateway
    container_name: sn-gateway
    ports:
      - "12345:12345"
    volumes:
      - vendor:/root/vendor
      - ./src/WebSocket:/root
    env_file:
      - ./src/WebSocket/config/.env

我遇到的问题是Dockerfile运行了一个应该使用环境变量的脚本(运行docker-compose config确实将其列出来了),但是脚本中的变量为空。

脚本:

#!/bin/sh

echo ------
echo $WS_PORT
echo ------

什么也没回声。我做错了什么,可以做到吗?我已经看到了许多示例,这些示例通过shell命令和类似命令转发ENV,但我不希望这样。我希望运行docker-compose up -d时一切正常,而无需指定任何内容。

1 个答案:

答案 0 :(得分:0)

您可以在脚本中获取环境文件

#!/bin/sh    
source ./src/WebSocket/config/.env


echo ------
echo $WS_PORT
echo ------