我试图为angular cli项目编写一个docker文件,但我有一个外部依赖项,它是BitBucket上的私有回购,因此我需要传递我的ssh密钥。我正在尝试使用--build-arg
传递ssh密钥
现在的问题是,它不是将这些密钥添加到ssh-agent中,而是请求密码。
我正在使用此命令运行Docker build-t ng-2-docker/client--build-arg ssh_prv_key=“$(cat~/.ssh/id_rsa)”--build-arg ssh_pub_key=“$(cat~/.ssh/id_rsa)”。
ARG ssh_prv_key
ARG ssh_pub_key
# Use an official Node runtime as a parent image
FROM node:8.9.4
# Specify working directory in docker container
WORKDIR /app
# Authorize SSH Host
RUN mkdir -p /ssh/
RUN chmod 0700 /ssh
# Add the keys and set permissions
RUN echo "$ssh_prv_key" > /ssh/id_rsa && echo "$ssh_pub_key" > /ssh/id_rsa.pub && chmod 600 /ssh/id_rsa && chmod 600 /ssh/id_rsa.pub
# add bitbucket to known hosts
RUN ssh-keyscan bitbucket.org > /ssh/known_hosts
# Copy SSH key to temp folder to pull new code
# ADD ~/.ssh/id_rsa /tmp/
# RUN ssh-agent /tmp
RUN ls -la /ssh
# check if ssh agent is running or not, if not, run
RUN eval `ssh-agent -s` && ssh-add /ssh/id_rsa
# Copy local files into the containers working directory
COPY package.json /app
# Install dependencies inside container
RUN npm i
# Copy local files into the containers working directory
COPY . /app
# Execute Process
CMD ["npm", "docker:rogers:local"]
# Remove ssh key from temp
# RUN rm /tmp/id_rsa
RUN rm -rf /ssh
# expose port
EXPOSE 4200
下面是我运行上面提到的命令时的输出。
我花了几天时间来研究同样的问题。ssh-keygen-p确保密码短语为空,但我需要在Dockerfile中使用ssh-agent和ssh-add,才能从私有回购中提取。我的几个同龄人告诉我,他们能够使它工作;我会抄他们的东西,但仍然被要求一个密码。最后我遇到了这个问题。在逐行手动输入rsa键并看到它成功后,我意识到这是因为我正在构建图像并通过make目标传入键,而Makefile正在将换行符作为空白处理。最终,这只是一个更新关键字作为参数的方式,以便它作为bash运行,而不是保留换行符。
下面是makefile中的build命令:
make container:
docker build --rm \
--build-arg ssh_prv_key="$$(cat ~/.ssh/id_rsa)" \
--squash -f Dockerfile -t $(DOCKER_IMAGE) .
我还将注意到我需要包括
echo "StrictHostKeyChecking no" >> /etc/ssh/ssh_config
但是问题是,ENTRYPOINT和CMD都只允许一个命令,所以我不确定如何启动SSH
为了更新一些证书,我必须将jks密钥库转换为PKCS#12密钥库,并在转换过程中包含私钥。我们收到的密钥库是JKS密钥库,但是我们的网络服务器使用PKCS#12密钥库,我们收到的密钥库只包含证书,而不包含私钥。 我试着用谷歌搜索并阅读SO的几个条目,我只想出了一个解决方案,这似乎更像是一个变通方法,而不是一个好的方法,所以我想知道是否有人有更好的方法如何注入私钥,并以更简单的方式从jks密钥库转换
我尝试从Eclipse切换到IntellijIDEA。我有一个使用Git的项目,我想快速向.gitignore文件添加文件。在Eclipse中,我可以右键单击一个文件/目录,然后选择'Add to.gitignore'。 在IntelliJ IDEA中是否有类似的内容或者我必须手动编辑文件?
问题内容: 我想补充一个特定的线路,可以说,到开头的文件,并应添加到该文件中的15号线。 这是向文件添加文本的方法: 这是如何向以MakeFile开头的文件中添加文本,我认为: 但是我无法将此行添加到文件的第15行。 问题答案: 您可以用来解决此问题: 或使用选项保存对文件所做的更改。 要更改所有从此开始的文件: 注意:以上是放置文本的兴趣点。
问题内容: 我想在现有的CSV文件中添加一行标题,并在适当位置进行编辑。我怎样才能做到这一点? 我想结束 更改初始CSV输出不方便。 任何标准命令都可以。重要的是,文件已就地编辑,并且该行插入到文件的开头。 问题答案: 这将在文件的开头添加自定义文本:
如何将数据添加到xml文件中,并在其上附加其他数据(如果存在)? 我尝试了以下代码,但这段代码只创建了一个值节点,没有附加到文件中。它总是删除现有的,然后添加新的。