Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将参数传递给docker-compose.yml中的Dockerfile_Docker_Docker Compose - Fatal编程技术网

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

如何将参数传递给docker-compose.yml中的Dockerfile,docker,docker-compose,Docker,Docker Compose,我有一个具有以下(简化)结构的项目apkmirror: . ├── docker-compose.yml └── tor └── Dockerfile docker compose.yml version: '3' services: tor: build: context: ./tor args: password: "" ports: - "9050:9050" - "9051:9051" t

我有一个具有以下(简化)结构的项目
apkmirror

.
├── 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
行添加到配置文件(参见)

但是,如果I
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说它没有“值”。但是,与上的示例相比,我看不出
docker compose.yml
Dockerfile
有什么问题


有人能发现问题出在哪里吗?

我相信问题出在密码是空字符串。如果我将其替换为
“foo”
,则
docker compose up
似乎按预期工作。

我认为问题在于
密码是空字符串。如果我将其替换为
“foo”
,则
docker compose up
似乎可以按预期工作