I’m trying to make a script that will build a bunch of docker images and push them to a private repository.
From the documentation, the
docker build command seems to accept git urls: very nice indeed.
All the repos are private and everyone in the company have ssh keys setup to access the git repos via ssh like
git clone [email protected]:/my-org/my-repo.git
I assumed that providing such url would work as well as it seems to be a very common use case. Turns out it doesn’t.
I googled around for a solution and found a git ticket about url formatting so I tried all the following:
Th last one in this list is the most promising as I’m getting the following output:
$ docker build -t registry.example.com:5000/my-repo:latest --ssh=default [email protected]:my-org/my-repo.git [+] Building 0.9s (1/1) FINISHED => ERROR [internal] load git source [email protected]:my-org/my-repo.git 0.9s ------ > [internal] load git source [email protected]:my-org/my-repo.git: #1 0.551 Warning: Permanently added the RSA host key for IP address '18.104.22.168' to the list of known hosts. #1 0.896 [email protected]: Permission denied (publickey). #1 0.898 fatal: Could not read from remote repository. #1 0.898 #1 0.898 Please make sure you have the correct access rights #1 0.898 and the repository exists. ------ failed to solve with frontend dockerfile.v0: failed to read dockerfile: failed to load cache key: failed to fetch remote [email protected]:my-org/my-repo.git: exit status 128
Before someone asks: yes the repo exists and I can clone it 🙂
I was assuming the "cloning" part of the process would be done "locally" using my own ssh keys before sending the context out for docker to build. Apparently it is not the case.
Is it a supported feature and if so how to make it work?
EDIT: I realised I forgot to give some context.
I’m running Docker Desktop on macOS big sur
Docker version 20.10.8, build 3967b7d
Client: Context: default Debug Mode: false Plugins: buildx: Build with BuildKit (Docker Inc., v0.6.1-docker) compose: Docker Compose (Docker Inc., v2.0.0-rc.3) scan: Docker Scan (Docker Inc., v0.8.0) Server: Containers: 9 Running: 8 Paused: 0 Stopped: 1 Images: 28 Server Version: 20.10.8 Storage Driver: overlay2 Backing Filesystem: extfs Supports d_type: true Native Overlay Diff: true userxattr: false Logging Driver: json-file Cgroup Driver: cgroupfs Cgroup Version: 1 Plugins: Volume: local Network: bridge host ipvlan macvlan null overlay Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog Swarm: inactive Runtimes: io.containerd.runtime.v1.linux runc io.containerd.runc.v2 Default Runtime: runc Init Binary: docker-init containerd version: e25210fe30a0a703442421b0f60afac609f950a3 runc version: v1.0.1-0-g4144b63 init version: de40ad0 Security Options: seccomp Profile: default Kernel Version: 5.10.47-linuxkit Operating System: Docker Desktop OSType: linux Architecture: x86_64 CPUs: 4 Total Memory: 3.842GiB Name: docker-desktop ID: 77LC:Z2AY:K6AA:OXAY:3JYQ:RSSL:RCJZ:GOSK:FUTG:DAPY:WIKK:BB7A Docker Root Dir: /var/lib/docker Debug Mode: true File Descriptors: 105 Goroutines: 93 System Time: 2021-09-16T08:47:27.924652162Z EventsListeners: 4 HTTP Proxy: http.docker.internal:3128 HTTPS Proxy: http.docker.internal:3128 Registry: https://index.docker.io/v1/ Labels: Experimental: false Insecure Registries: <REDACTED> Live Restore Enabled: false
Source: Docker Questions