docker-编写执行命令
docker-compose execute command
我正在尝试将一些命令放入我的 docker-compose
文件中以 运行 在我的容器中,但它们不起作用。
我将一个卷从主机映射到我有根证书的容器,我想做的就是运行这个命令update-ca-certificates
,所以它会更新目录/etc/ssl/certs 我的证书在容器中,但是它没有发生。
我试图在 Dockerfile 中解决这个问题,我可以看到命令 运行s,但证书似乎不存在,只是在我登录容器后出现。
我最后做的是进入容器,然后我 运行 手动执行所需的命令。
这是我一直在尝试使用的 docker-compose
文件的一部分:
build:
context: .
dockerfile: Dockerfile
command: >
sh -c "ls -la /usr/local/share/ca-certificates &&
update-ca-certificates"
security_opt:
- seccomp:unconfined
volumes:
- "c:/certs_for_docker:/usr/local/share/ca-certificates"
以同样的方式我不能 运行 apt update
或类似的东西,但是在使用 docker exec -it test_alerting_comp /bin/bash
连接到容器后我可以从任何 repo 中提取任何东西。
我的目标是在构建时执行任何需要的命令,所以当我登录到容器时,我已经有了我将使用的包和根证书更新,谢谢。
为什么不打包 update/install 并在 Dockerfile 中复制证书?
Dockerfile
...
RUN apt-get update && apt-get -y install whatever
COPY ./local/certificates /usr/local/share/my-certificates
RUN your-command-for-certificates
docker-compose.yml
version: "3.7"
services:
your-service:
build: ./dir
我正在尝试将一些命令放入我的 docker-compose
文件中以 运行 在我的容器中,但它们不起作用。
我将一个卷从主机映射到我有根证书的容器,我想做的就是运行这个命令update-ca-certificates
,所以它会更新目录/etc/ssl/certs 我的证书在容器中,但是它没有发生。
我试图在 Dockerfile 中解决这个问题,我可以看到命令 运行s,但证书似乎不存在,只是在我登录容器后出现。
我最后做的是进入容器,然后我 运行 手动执行所需的命令。
这是我一直在尝试使用的 docker-compose
文件的一部分:
build:
context: .
dockerfile: Dockerfile
command: >
sh -c "ls -la /usr/local/share/ca-certificates &&
update-ca-certificates"
security_opt:
- seccomp:unconfined
volumes:
- "c:/certs_for_docker:/usr/local/share/ca-certificates"
以同样的方式我不能 运行 apt update
或类似的东西,但是在使用 docker exec -it test_alerting_comp /bin/bash
连接到容器后我可以从任何 repo 中提取任何东西。
我的目标是在构建时执行任何需要的命令,所以当我登录到容器时,我已经有了我将使用的包和根证书更新,谢谢。
为什么不打包 update/install 并在 Dockerfile 中复制证书?
Dockerfile
...
RUN apt-get update && apt-get -y install whatever
COPY ./local/certificates /usr/local/share/my-certificates
RUN your-command-for-certificates
docker-compose.yml
version: "3.7"
services:
your-service:
build: ./dir