繁体   English   中英

如何将ARG传递给docker-compose.yml中的Dockerfile

[英]How to pass an ARG to a Dockerfile in a docker-compose.yml

我有一个项目apkmirror-scraper-compose具有以下(简化)结构:

.
├── docker-compose.yml
└── tor
    └── Dockerfile

docker-compose.yml

version: '3'

services: 
  tor:
    build:
      context: ./tor
      args:
        password: ""
    ports:
      - "9050:9050"
      - "9051:9051"

tor目录中的Dockerfile是:

FROM alpine:latest
EXPOSE 9050 9051
ARG password
RUN apk --update add tor
RUN echo "ControlPort 9051" >> /etc/tor/torrc
RUN echo "HashedControlPassword $(tor --quiet --hash-password $password)" >> /etc/tor/torrc
CMD ["tor"]

我正在尝试将参数password (作为值"" (一个emtpy字符串))传递给Dockerfile ,以便它可以使用Tor散列它并将HashedControlPassword行添加到配置文件中(参见https:// www.torproject.org/docs/tor-manual.html.en )。

但是,如果我使用docker-compose build后跟docker-compose up ,则日志包含以下内容:

Creating network "apkmirrorscrapercompose_default" with the default driver
Starting apkmirrorscrapercompose_tor_1
Attaching to apkmirrorscrapercompose_tor_1
tor_1  | May 02 08:03:59.344 [notice] Tor v0.2.8.12 running on Linux with Libevent 2.0.22-stable, OpenSSL LibreSSL 2.4.4 and Zlib 1.2.8.
tor_1  | May 02 08:03:59.345 [notice] Tor can't help you if you use it wrong! Learn how to be safe at https://www.torproject.org/download/download#warning
tor_1  | May 02 08:03:59.345 [notice] Read configuration file "/etc/tor/torrc".
tor_1  | May 02 08:03:59.349 [warn] Linelist option 'HashedControlPassword' has no value. Skipping.
tor_1  | May 02 08:03:59.349 [warn] ControlPort is open, but no authentication method has been configured.  This means that any program on your computer can reconfigure your Tor.  That's bad!  You should upgrade your Tor controller as soon as possible.

换句话说, password参数没有被“拾取”:Tor说它没有“没有价值”。 然而,与https://docs.docker.com/compose/compose-file/#args上的示例相比,我没有看到docker-compose.ymlDockerfile有什么问题。

谁能发现问题是什么?

我认为问题在于password是空字符串。 如果我用"foo"替换它, docker-compose up似乎按预期工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM