我有以下Dockerfile:
FROM ubuntu:16.04
RUN apt-get update \
&& apt-get upgrade -y \
&& apt-get install -y \
build-essential \
ca-certificates \
gcc \
git \
libpq-dev \
make \
python-pip \
python2.7 \
python2.7-dev \
ssh \
&& apt-get autoremove \
&& apt-get clean
ARG SSH_PRIVATE_KEY
RUN mkdir /root/.ssh/
RUN echo "${SSH_PRIVATE_KEY}" > /root/.ssh/id_rsa
RUN touch /root/.ssh/known_hosts
RUN ssh-keyscan http://bitbuckrt.org >> /root/.ssh/known_hosts
RUN pip install git+ssh://git@bitbucket.org/repo.git
我正在使用以下命令从此Dockerfile构建Docker映像:
docker build -t myimage:v1 --build-arg SSH_PRIVATE_KEY="ssh-rsa jkdfjgklfsgnkljgxdfeheflkfkl/hkskkdhgtgshshsh/... " .
但是,它并没有建立我的形象。我收到以下错误:
"docker build" requires exactly 1 argument.
可能是什么问题?构建图像时如何正确传递SSH_PRIVATE_KEY
?
答案 0 :(得分:0)
将私钥分配给bash变量,然后在命令中使用它。在分配给变量的同时从文件中读取密钥是最安全的。如果键内带有引号,则该键内的特殊字符可能会拧紧该命令。例如:
PKEY=$(<key.txt)
docker build -t myimage:v1 --build-arg SSH_PRIVATE_KEY=$PKEY .