docker-compose выполнить команду - PullRequest
0 голосов
/ 07 июня 2019

Я пытаюсь поместить некоторые команды в мой docker-compose файл для запуска в моем контейнере, и они не работают.

Я сопоставляю том с хоста на контейнер, где у меня есть Root-сертификатвсе, что я хочу сделать, это запустить эту команду 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 я могу получить что угодно из любого репо.

Моя цель - выполнить любую необходимую команду при сборкевремя, поэтому, когда я войду в контейнер, у меня уже есть пакеты, которые я буду использовать, и сертификат Root обновлен, спасибо.

1 Ответ

1 голос
/ 07 июня 2019

Почему вы не делаете обновление / установку пакетов и не копируете сертификаты в Dockerfile?

Dockerfile

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

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

RUN your-command-for-certificates

докер-compose.yml

version: "3.7"
services:
  your-service:
    build: ./dir
...