docker-compose execute命令

时间:2019-06-07 08:26:54

标签: docker docker-compose docker-volume docker-container

我正在尝试在我的docker-compose文件中放入一些命令,以便在我的容器中运行它们,但它们不起作用。

我将一个卷从主机映射到具有根证书的容器,我要做的就是运行此命令update-ca-certificates,因此它将使用我的证书更新目录/ etc / ssl / certs容器,但是没有发生。

我尝试在Dockerfile中解决此问题,我可以看到命令正在运行,但是似乎证书不存在,并且仅在我登录到容器后出现。

我最终要做的是进入容器,然后手动运行所需的命令。

这是我一直尝试使用的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连接到容器后,我可以从任何存储库中提取任何东西。

我的目标是在构建时执行任何需要的命令,因此,当我登录到容器时,已经有了将要使用的软件包和更新了根证书,谢谢。

1 个答案:

答案 0 :(得分:1)

为什么不在Dockerfile中打包更新/安装并复制证书?

Dockerfile

minSdkVersion

docker-compose.yml

...
RUN apt-get update && apt-get -y install whatever

COPY ./local/certificates /usr/local/share/my-certificates

RUN your-command-for-certificates