如何在docker中共享环境变量

时间:2017-01-15 11:54:48

标签: docker asp.net-core docker-compose

我是码头工的新手,我有很多麻烦让它开始。我正在为visual studio 2017制作一个asp.net核心1.0.1应用程序用户docker容器工具。我在与具有此值的compose文件相同的根目录中有以下env.file:

REDIS_PORT=6379

这个docker组成了yml:

version: '2'

services:
  haproxy:
    image: eeacms/haproxy
    links:
      - webapplication3
    ports:
     - "80:80"   
  webapplication3:
    image: webapplication3
    enviroment:
      - REDIS_PORT=${REDIS_PORT}
    build:
      context: .
      dockerfile: Dockerfile
    links:
      - redis
    ports:
     - "80"
  redis:
    image: redis
    ports:
     - ${REDIS_PORT}

我想知道我必须从我的Asp.net核心应用程序连接的redis端口。据我所知,唯一的方法是使用env变量,因为我不想复制粘贴端口,我想使用.env文件样式。无论如何,这是行不通的说法:

Unsupported config option for services.webapplication3:'enviroment'

任何想法可能是什么问题?

2 个答案:

答案 0 :(得分:2)

您需要传递env_file选项:

version: '2'

services:
  haproxy:
    image: eeacms/haproxy
    links:
      - webapplication3
    ports:
     - "80:80"   
  webapplication3:
    image: webapplication3
    env_file:
      - env.file
    environment:
      - REDIS_PORT=${REDIS_PORT}
    build:
      context: .
      dockerfile: Dockerfile
    links:
      - redis
    ports:
     - "80"
  redis:
    image: redis
    env_file:
      - env.file
    ports:
     - ${REDIS_PORT}

请查看https://docs.docker.com/compose/environment-variables/了解详情。

答案 1 :(得分:2)

你错过了单词environment中的字母“n”。