Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Membina Aplikasi Go dengan Modul GitLab Peribadi di Docker menggunakan SSH?

Bagaimana untuk Membina Aplikasi Go dengan Modul GitLab Peribadi di Docker menggunakan SSH?

Barbara Streisand
Lepaskan: 2024-12-07 10:32:12
asal
245 orang telah melayarinya

How to Build Go Apps with Private GitLab Modules in Docker using SSH?

Membina Aplikasi Go dengan Modul GitLab Peribadi di Docker

Panduan ini bertujuan untuk menangani cabaran khusus yang dihadapi apabila menyepadukan modul GitLab peribadi ke dalam aplikasi Go dalam Docker.

Memahami Isu

Isu timbul apabila Dockerfile cuba menarik pakej peribadi daripada GitLab, tetapi pengesahan gagal walaupun mengikuti tutorial serupa untukGitHub. Masalah khusus ini berpunca daripada perbezaan antara mekanisme pengesahan GitHub dan GitLab.

Penyelesaian Cadangan

Untuk menyelesaikan isu ini, kami akan menggunakan pengesahan berasaskan SSH dan menggunakan eksperimen Docker ciri.

Docker Eksperimen Ciri

Dayakan ciri Docker percubaan dengan menambahkan ulasan berikut pada permulaan Fail Docker anda:

# syntax=docker/dockerfile:experimental
Salin selepas log masuk

Persediaan Fail Docker

  1. Pastikan persekitaran binaan anda mempunyai openssh-client:
RUN apk --no-cache add build-base git mercurial gcc curl openssh-client
Salin selepas log masuk
  1. Tubuhkan known_hosts dan konfigurasikan .gitconfig:
RUN mkdir -p -m 0700 ~/.ssh && \
    ssh-keyscan gitlab.com >> ~/.ssh/known_hosts && \
    echo -e "[url \"[email&#160;protected]:<company-name>\"]\n\tinsteadOf = https://gitlab.com/<company-name>\"" >> ~/.gitconfig
Salin selepas log masuk
  1. Bina aplikasi Go anda dengan pengesahan berasaskan SSH :
ENV GO111MODULE=on
ENV GOPRIVATE=gitlab.com/<company-name>
RUN --mount=type=ssh cd cmd/app/ &amp;&amp; go build -o app
Salin selepas log masuk

Muat Kunci dalam ssh-agent

Sebelum membina imej Docker, kunci peribadi mesti dimuatkan ke dalam ssh-agent:

ssh-add id_rsa
Salin selepas log masuk

Membina Imej Docker

Bina imej Docker menggunakan yang berikut arahan:

DOCKER_BUILDKIT=1 docker build --progress=plain .
Salin selepas log masuk

Menyahpepijat Sambungan SSH

Jika masalah sambungan SSH timbul, tambahkan arahan nyahpepijat berikut pada fail Docker anda:

RUN ssh -A -v -l git gitlab.com
Salin selepas log masuk

Menyelesaikan Isu AppArmor

Jika apparmor adalah menyekat akses Docker kepada soket kunci SSH, edit profil apparmor dan tambah baris berikut sebelum penutupan }:

/run/user/1000/keyring/ssh rw,
Salin selepas log masuk

Isu Nama Fail Utama

Pastikan bahawa nama fail kunci peribadi ialah salah satu nilai lalai yang SSH jangkakan (cth., id_rsa) atau gunakan .ssh/config fail untuk memetakan nama kunci tersuai kepada lalai yang dijangkakan.

Nota Tambahan

Elakkan menggunakan chmod untuk memberikan kebenaran, kerana entri kunci SSH mencukupi untuk berkongsi maklumat peribadi kunci. Ia juga disyorkan untuk mengelak daripada menggunakan .netrc kerana ia membenamkan bukti kelayakan ke dalam imej Docker, yang berpotensi menjejaskan keselamatan.

Atas ialah kandungan terperinci Bagaimana untuk Membina Aplikasi Go dengan Modul GitLab Peribadi di Docker menggunakan SSH?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan