bash - 将 Dockerfile 中的 bash 输出保存为 ENV var
问题描述
我正在设置一个随机密码,用于在我的Dockerfile
. 我努力了
ENV PASSWORD=RUN date +%s | sha256sum | base64 | head -c 32
这不起作用,因为 Docker 命令位于单独的容器中。我也试过
RUN export PASSWORD= date +%s | sha256sum | base64 | head -c 32
这也失败了。
我还尝试将我的输出重定向到一个文件,该文件也失败了,该文件保持为空并且没有给出错误。
RUN date +%s | sha256sum | base64 | head -c 32 > test.txt
如何将此命令的输出保存为要在 Docker 容器中使用的 ENV var?
解决方案
以下 Dockerfile:
FROM alpine:latest
RUN echo "bd" > /test.txt
当运行test.txt
文件存在时:
docker build . -t test:latest
docker run -it --rm test:latest
> cat /test.txt
> 'bd'
你可以改变你的命令以一种source
能干的方式写一个文件(RUN echo "my_env_var=$(echo 'stuff')" > /test.txt
)然后让你的入口点包括. /test.txt
推荐阅读
- c - 以无穷大为极限之一的 fortran 数值积分
- c++ - Visual Studio Code for Mac“架构的未定义符号”
- r - 将多列从因子转换为数字,但在 R 中获得 NA
- c++ - 如何在 C++ 中获得一个月的第三个星期五?
- routes - Yii2 条件 URL 路由
- bots - Telegram 中有多个机器人管理员
- amazon-web-services - AWS EC2 用户数据创建 SH 脚本
- typescript - 模式匹配 switch 语句
- javascript - 一些量角器测试被跳过
- mysql - 查询某个特定客户在去年下的总订单在不存在订单时检索重复日期