Как вы можете автоматически запускать и удалять контейнер в docker compose - PullRequest
0 голосов
/ 10 мая 2019

Я хочу переслать свой ssh-агент и нашел это https://github.com/nardeas/ssh-agent

, а следующие шаги

0.Build Перейдите в каталог проекта и запустите следующую команду для создания образа:

docker build -t docker-ssh-agent:latest -f Dockerfile .

1.Запустите долгоживущий контейнер

docker run -d --name=ssh-agent docker-ssh-agent:latest

2.Добавьте ваши ключи ssh Запустите временный контейнер с томом, смонтированным с хоста, который включает ваши ключи SSH.SSH-ключ id_rsa будет добавлен в ssh-agent (вы можете заменить id_rsa именем вашего ключа):

docker run --rm --volumes-from=ssh-agent -v ~/.ssh:/.ssh -it docker-ssh-agent:latest ssh-add /root/.ssh/id_rsa

Контейнер ssh-agent готов к использованию.

3.Добавьте сокет ssh-agent в другой контейнер: Если вы используете docker-compose, вы перенаправляете сокет в контейнер:

volumes_from:
  - ssh-agent
environment:
  - SSH_AUTH_SOCK=/.ssh-agent/socket

в файле composeЯ добавляю к нему шаг 1 следующим образом:

services:
  ssh_agent:
    image: nardeas/ssh-agent

Однако я не понимаю, каков эквивалентный синтаксис в создать файл для шага 2

docker run --rm --volumes-from=ssh-agent -v ~/.ssh:/.ssh -it docker-ssh-agent:latest ssh-add /root/.ssh/id_rsa

Ответы [ 2 ]

0 голосов
/ 10 мая 2019

docker-compose.yml файл будет

services:
  ssh_agent:
  image: docker-ssh-agent:latest
  command: ssh-add /root/.ssh/id_rsa
  volumes_from:
    - ssh-agent
  environment:
    - SSH_AUTH_SOCK=/.ssh-agent/socket
  volumes:
    - ~/.ssh:/.ssh

, затем выполните команду docker-compose, как показано ниже

docker-compose -f docker-compose.yml run --rm ssh_agent
0 голосов
/ 10 мая 2019

Вы можете сделать это, как показано ниже -

docker-compose -f my-docker-compose.yml run --rm ssh_agent bash -c "ssh-add /root/.ssh/id_rsa"

Ссылка - https://docs.docker.com/compose/reference/run/

...