Используйте ключи SSH хоста для частного доступа к Git-репо в DockerFile - PullRequest
0 голосов
/ 21 ноября 2018

Я новичок в Docker и собираюсь заставить мое веб-приложение на Angular создавать и запускать в контейнере.

У меня есть очень простой Dockerfile в корне проекта, например:

# Create the image based on the official Node 10.13.0 image from Dockerhub
FROM node:10.13.0 as node

# Copy dependency definitions
COPY package.json .

# Install dependencies using npm
RUN npm install

# TODO - copy rest of app and run angular-cli build commands to serve up the app

И после запуска команды на сборку я получаю следующую ошибку:

enter image description here

Я понимаю, что, глядя на эту ошибку,что я еще не предоставил никаких сведений о ключе хоста с моего хост-компьютера, чтобы их можно было использовать для доступа к частным репозиториям.

Я наткнулся здесь на несколько старых ответов о подходах к предоставлению деталей моего ключа хоста, таких как этот , но я не продвинулся дальше, все еще получая ту же ошибку.

Я смог подтвердить, что правильно ссылаюсь на свой ключ хоста, отобразив их в моем файле настройки и увидевподробности в моем терминале.

В любом случае, я не уверен, какой правильный или официальный способ сделать это.

Я использую Docker 2.0.0.0-maxc78 и в macOS High sierra

Может кто угодноПожалуйста, укажите мне правильное направление относительно правильного подхода, пожалуйста?

Спасибо!

1 Ответ

0 голосов
/ 21 ноября 2018

Этот сценарий выиграл бы от недавнего docker build secret.

docker build --secret id=mysite.key,src=path/to/mysite.key .

, который используется в вашем Dockerfile как:

# syntax=docker/dockerfile:1.0.0-experimental

FROM alpine

RUN --mount=type=secret,id=mysite.key command-to-run

Подробнее с " Build"секреты и переадресация SSH в Docker 18.09"(ваш докер 2.0.0 должен его поддерживать)

В вашем случае ваш Dockerfile должен содержать:

RUN --mount=type=ssh git clone git@github.com:myorg/myproject.git myproject

Нана стороне клиента докера, вы должны определить, что пересылка SSH разрешена для этой сборки, используя флаг --ssh.

docker build --ssh default .

Флаг принимает пару ключ-значение, определяющую местоположение для локального сокета агента SSHили секретные ключи.

...