docker - 在 RUN 部分 Dockerfile 中设置环境变量
问题描述
我想创建一个预装 git 的图像,可以在 docker-run 期间登录 Github。
docker-run
此图像假设通过-e
option获取 Github 用户名和命令中的令牌。
例如 :
sudo docker run -it --rm -e "username=parsalotfy" -e "token=secretsecretsecret" -e "email=parsalotfy@gmail.com" gitloggedin
我这样写Dockerfile:
FROM alpine
RUN apk update
RUN apk upgrade
RUN apk add git
RUN git clone https://$username:$token@github.com/$username/$repo.git
RUN cd $repo/
RUN git config user.email $email
COPY entrypoint.sh /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]
但是当我想构建这个 Dockerfile 时,会出现这个错误:
我在这里做错了什么?
我怎样才能让 Github 用户通过-e
选项后通过用户名和密码登录docker-run
?
谢谢你。
解决方案
正如有人在评论中提到的参考链接,您需要在使用之前声明您的环境变量,ENV EMAIL me@example.com
或者ENV EMAIL
然后使用它
推荐阅读
- javascript - 如何从javascript中的函数外访问函数中的变量
- javascript - 是否可以将 javascript 对象的 get 项定义为函数?
- java - onClick int 值更新到 Firebase 实时数据库
- react-native - React Native:成功登录后将电子邮件数组存储在 AsyncStorage 中
- node.js - 如何使用 Cloud Function 从 Cloud Storage for Firebase 获取对象?
- node.js - 直到我在 Visual Studio Code 中点击开始调试,一切都很好
- jenkins-pipeline - Docker in Docker - Jenkins Docker Pipeline - 如何连接到外部服务
- python - opencv 在使用 Kivy 和 Buildozer 创建 Android 应用程序时出现问题:/site-packages/cv2/cv2.so" 是 64 位而不是 32 位,targetsdk:27
- email - 如何在 Roundcube 上启用密码插件
- c# - 传递给 ViewDataDictionary 的模型项是“*”类型的,但是这个 ViewDataDictionary 实例需要一个“..IEnumerable[*]”类型的模型项