docker secrets Как работать с ssh ключами в контейнере. Пример

Напр. с помощью такого docker-compose.yml:

version: '3.7'
services:
  web:
    build: ./
    container_name: web_cont
    ports:
      - "9721:80"
      - "9725:22"
    volumes:
      - '../:/var/www/html/site'
    networks:
        frontnet:
            ipv4_address: 172.33.1.2
    secrets:
      - host_ssh_key
  db:
    image: postgres:12.2
    container_name: db
    volumes:
      - './config/postgresql:/docker-entrypoint-initdb.d'
    environment:
      POSTGRES_PASSWORD: password
      POSTGRES_USER: user
      POSTGRES_MULTIPLE_DATABASES: db,db_test
    ports:
      - 9722:5432
    networks:
        frontnet:
            ipv4_address: 172.33.1.4
            
networks:
    frontnet:
        ipam:
            driver: default
            config:
            - subnet: 172.33.0.0/16
            
secrets:
   host_ssh_key:
       file: ~/.ssh/dep_rsa

-- мы делаем доступным файл ~/.ssh/dep_rsa при сборке контейнера web_cont под именем host_ssh_key, после этой конфигурации мы можем получить досуп к файлу ключа уже в сценарии Dockerfile, для данного случая путь к нему будет таким:

/run/secrets/host_ssh_key

можно использовать в Dockerfile, напр. так:

RUN mkdir ~/.ssh && ln -s /run/secrets/host_ssh_key ~/.ssh/id_rsa

Key Words for FKN + antitotal forum (CS VSU):