gpt4 book ai didi

bash - 如何将命令输出替换为字符串并将其附加到文件中(在Docker中运行的Alpine Linux中)

转载 作者:行者123 更新时间:2023-12-02 18:15:53 26 4
gpt4 key购买 nike

我正在尝试构建以下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运行容器时最好提供这些东西。

关于bash - 如何将命令输出替换为字符串并将其附加到文件中(在Docker中运行的Alpine Linux中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43683002/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com