“ docker build”仅需要1个参数-docker build错误

时间:2019-01-09 17:06:06

标签: docker dockerfile

我有以下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

1 个答案:

答案 0 :(得分:0)

将私钥分配给bash变量,然后在命令中使用它。在分配给变量的同时从文件中读取密钥是最安全的。如果键内带有引号,则该键内的特殊字符可能会拧紧该命令。例如:

PKEY=$(<key.txt)
docker build -t myimage:v1 --build-arg SSH_PRIVATE_KEY=$PKEY .