如何将命令输出替换为字符串并将其附加到文件中(在 Alpine Linux 运行 中 Docker)
How to substitute a command output into a string and append that to a file (in Alpine Linux running in Docker)
我正在尝试构建以下 Dockerfile:
FROM alpine:latest
EXPOSE 9050 9051
RUN apk --update add tor
RUN echo "ControlPort 9051" >> /etc/tor/torrc
RUN password_hash=$(tor --hash-password "foo")
RUN echo "HashedControlPassword $password_hash" >> /etc/tor/torrc
CMD ["tor"]
我正在尝试将行 HashedControllPassword [pw]
添加到 /etc/tor/torrc,其中 [pw]
是由命令 tor --hash-password "foo"
生成的。 (在此示例中,我使用 "foo" 作为密码)。
如果我使用 docker build --tag my_tor .
构建映像并使用
输入命令行
docker run -it my_tor /bin/ash
和运行cat /etc/tor/torrc
,我明白了
ControlPort 9051
HashedControlPassword
换句话说,最后 torrc
似乎不包含散列密码。但是,我的 Ubuntu 终端中的类似命令确实有效。谁能找出问题所在?
您可以使用ARG
FROM alpine:latest
EXPOSE 9050 9051
ARG password
RUN apk --update add tor
RUN echo "ControlPort 9051" >> /etc/tor/torrc
RUN echo "HashedControlPassword $(tor --hash-password $password)" >> /etc/tor/torrc
CMD ["tor"]
然后构建使用:
docker build --build-arg password=foo Dockerfile
一般来说,我不会在图像中烘焙密码。当您使用 -e
.
运行 容器时最好提供这些东西
我正在尝试构建以下 Dockerfile:
FROM alpine:latest
EXPOSE 9050 9051
RUN apk --update add tor
RUN echo "ControlPort 9051" >> /etc/tor/torrc
RUN password_hash=$(tor --hash-password "foo")
RUN echo "HashedControlPassword $password_hash" >> /etc/tor/torrc
CMD ["tor"]
我正在尝试将行 HashedControllPassword [pw]
添加到 /etc/tor/torrc,其中 [pw]
是由命令 tor --hash-password "foo"
生成的。 (在此示例中,我使用 "foo" 作为密码)。
如果我使用 docker build --tag my_tor .
构建映像并使用
docker run -it my_tor /bin/ash
和运行cat /etc/tor/torrc
,我明白了
ControlPort 9051
HashedControlPassword
换句话说,最后 torrc
似乎不包含散列密码。但是,我的 Ubuntu 终端中的类似命令确实有效。谁能找出问题所在?
您可以使用ARG
FROM alpine:latest
EXPOSE 9050 9051
ARG password
RUN apk --update add tor
RUN echo "ControlPort 9051" >> /etc/tor/torrc
RUN echo "HashedControlPassword $(tor --hash-password $password)" >> /etc/tor/torrc
CMD ["tor"]
然后构建使用:
docker build --build-arg password=foo Dockerfile
一般来说,我不会在图像中烘焙密码。当您使用 -e
.