Docker撰写环境

时间:2018-07-31 09:21:53

标签: docker docker-compose

我的docker-compose.yml如下所示。

version: '3.4'

services:
  identity.api:
    image: panda/identity.api
    build: 
      context: .
      dockerfile: Services/Identity/PandaMarket.Identity.Api/Dockerfile

    ports:
      - "5000:80"
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
      - ConnectionString=Server=sql.server;Database=PandaMarket.Identity;User Id=sa;Password=Password#123

当我执行docker-compose build或docker-compose up

我检查了docker inspect panda/identity.api,找不到ASPNETCORE_ENVIRONMENT和ConnectionString。

我表演时

docker inspect -f '{{range $index, $value := .Config.Env}} {{$value}} {{end}}' panda/identity.api

我只能看到这些变量

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin  ASPNETCORE_URLS=http://+:80  DOTNET_RUNNING_IN_CONTAINER=true  ASPNETCORE_VERSION=2.1.2

我的问题是图像中如何反映环境?

1 个答案:

答案 0 :(得分:0)

如果要在映像中定义环境变量,则需要在Dockerfile中定义它们。您可以传递一个build arg,以允许您从撰写文件中更改该环境变量。

在compose文件中设置环境变量以及其他设置(例如命令和入口点)后,它们将应用于运行中的容器。您需要运行docker-compose updocker stack deploy ...才能查看这些设置的结果。

请注意,不鼓励从compose运行构建。它们不再是版本3格式的功能,并且在您使用撰写文件通过编排工具(例如群模式)进行部署时不适用。理想的解决方案是使用可推送到注册表的CI服务器进行构建。