我是Docker的新手,可以尝试在容器中构建和运行Angular Web应用。
我在项目的根目录有一个非常基本的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
对它运行构建命令后,我遇到了以下错误:
通过查找此错误,我意识到我尚未从主机提供任何主机密钥详细信息,因此可以将其用于访问私有存储库。
在这里,我遇到了一些关于提供主机密钥详细信息(例如this one)的方法的旧答案,但是我没有得到更多的信息,仍然遇到相同的错误。
通过在dockerfile中回显这些密钥并在终端中查看详细信息,我能够确认自己正确地引用了主机密钥。
无论如何,我不确定这样做的正确或官方方式。
我正在docker 2.0.0.0-maxc78和macOS High sierra上运行
有人可以请我指出正确的方向吗?
谢谢!
答案 0 :(得分:1)
这种情况将从最近的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
通过“ This”了解更多信息(您的docker 2.0.0应该支持它)
对于您而言,您的Dockerfile应该包括:
RUN --mount=type=ssh git clone git@github.com:myorg/myproject.git myproject
在docker客户端上,您需要使用
--ssh
标志来定义允许对此构建进行SSH转发。docker build --ssh default .
该标志接受一个键值对,该对值定义了本地SSH代理套接字或私钥的位置。