热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

将主机环境变量传递给dockerfile

如何解决《将主机环境变量传递给dockerfile》经验,为你挑选了2个好方法。

如何将主机环境变量(如用户名和主机名)传递给dockerfile?

例如,如果我的用户名是taha:

echo $USER
taha

如何编写Docker文件以获得相同的输出?

FROM centos:centos7   
ARG myuser=$USER  
CMD echo $myuser

Serey.. 10

我遇到了同样的问题.我的解决方案是在docker-compose.yml中提供变量,因为yml支持使用环境变量.

在我看来,这对我来说是最有效的方式,因为我不喜欢在命令行中使用类似的东西一遍又一遍地输入它 docker run -e myuser=$USER . . .

声明ENV myuser=$USER$myuser无法在容器中工作,将设置为null.

所以你的docker-compose.yml看起来像这样:

version: '3'
services:
  app:
    build:
      context: .
      dockerfile: Dockerfile
    environment:
       - "myuser=${USER}"

并且可以使用short命令运行 docker-compose up

要检查是否已应用变量,请运行docker exec -it container-name printenv以列出容器中的所有变量.



1> Serey..:

我遇到了同样的问题.我的解决方案是在docker-compose.yml中提供变量,因为yml支持使用环境变量.

在我看来,这对我来说是最有效的方式,因为我不喜欢在命令行中使用类似的东西一遍又一遍地输入它 docker run -e myuser=$USER . . .

声明ENV myuser=$USER$myuser无法在容器中工作,将设置为null.

所以你的docker-compose.yml看起来像这样:

version: '3'
services:
  app:
    build:
      context: .
      dockerfile: Dockerfile
    environment:
       - "myuser=${USER}"

并且可以使用short命令运行 docker-compose up

要检查是否已应用变量,请运行docker exec -it container-name printenv以列出容器中的所有变量.



2> Theophile Da..:

启动Docker容器时,您可以使用以下-e选项传递环境变量:

docker run -it  -e USER=$USER /bin/bash 


推荐阅读
author-avatar
手机用户2502932023
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有