警告
      
      
        本文最后更新于 2022-11-22,文中内容可能已过时。
       
     在 Dockerfile 使用 ssh 秘钥,可以访问相应权限的项目
  Dockerfile
|  1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
 | # syntax=docker/dockerfile:experimental
FROM william-centos7-gcc9:v1.0
MAINTAINER William
LABEL Remarks="DataMgr @WuyaCapital"
# add credentials on build
RUN mkdir -p -m 0700 ~/.ssh && \
    ssh-keyscan 192.168.1.171 >> ~/.ssh/known_hosts
# ADD ./requirements.txt /app/requirements.txt
# RUN pip install -r requirements.txt
RUN --mount=type=ssh \
    mkdir -p git && cd git && \
    git clone git@192.168.1.171:lfang/wepy.git && \
    echo `ls -alh`
CMD ["/usr/sbin/init"]
 | 
 
这里需要注意:
  Docker 命令执行
| 1
 | DOCKER_BUILDKIT=1 docker build --ssh default -t
 | 
 
如果出现了以下的报错,先不要慌,可能是网络解析不通畅:
| 1
2
3
4
5
6
 |  => ERROR resolve image config for docker.io/docker/dockerfile:experimental
0.1s
------
 > resolve image config for docker.io/docker/dockerfile:experimental:
------
failed to solve with frontend dockerfile.v0: failed to solve with frontend gateway.v0: unexpected status code https://docker.mirrors.ustc.edu.cn/v2/docker/dockerfile/manifests/experimental: 403 Forbidden
 | 
 
  Docker-compose 执行
  结果查看
|  1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
 | [+] Building 277.1s (10/12)
 => [internal] load build definition from Dockerfile                                                                                                                                                                                                                                                                                                                                      0.0s
 => => transferring dockerfile: 38B                                                                                                                                                                                                                                                                                                                                                       0.0s
 => [internal] load .dockerignore                                                                                                                                                                                                                                                                                                                                                         0.0s
 => => transferring context: 2B                                                                                                                                                                                                                                                                                                                                                           0.0s
 => resolve image config for docker.io/docker/dockerfile:experimental                                                                                                                                                                                                                                                                                                                     1.6s
 => CACHED docker-image://docker.io/docker/dockerfile:experimental@sha256:600e5c62eedff338b3f7a0850beb7c05866e0ef27b2d2e8c02aa468e78496ff5                                                                                                                                                                                                                                                0.0s
 => [internal] load build definition from Dockerfile                                                                                                                                                                                                                                                                                                                                      0.0s
 => => transferring dockerfile: 38B                                                                                                                                                                                                                                                                                                                                                       0.0s
 => [internal] load metadata for docker.io/library/william-centos7-gcc9:v1.0                                                                                                                                                                                                                                                                                                              0.0s
 => [1/5] FROM docker.io/library/william-centos7-gcc9:v1.0                                                                                                                                                                                                                                                                                                                                0.0s
 => => resolve docker.io/library/william-centos7-gcc9:v1.0                                                                                                                                                                                                                                                                                                                                0.0s
 => [internal] load build context                                                                                                                                                                                                                                                                                                                                                         0.0s
 => => transferring context: 38B                                                                                                                                                                                                                                                                                                                                                          0.0s
 => [2/5] RUN mkdir -p -m 0700 ~/.ssh &&     ssh-keyscan 192.168.1.171 >> ~/.ssh/known_hosts                                                                                                                                                                                                                                                                                              0.5s
 => [3/5] ADD ./requirements.txt /app/requirements.txt                                                                                                                                                                                                                                                                                                                                    0.1s
 => [4/5] RUN pip3 install -r requirements.txt
 |