cari
Rumahpembangunan bahagian belakangGolangBagaimana untuk Membina Aplikasi Go dengan Modul GitLab Peribadi di Docker menggunakan SSH?

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

Persediaan Fail Docker

  1. Pastikan persekitaran binaan anda mempunyai openssh-client:
RUN apk --no-cache add build-base git mercurial gcc curl openssh-client
  1. Tubuhkan known_hosts dan konfigurasikan .gitconfig:
RUN mkdir -p -m 0700 ~/.ssh && \
    ssh-keyscan gitlab.com >> ~/.ssh/known_hosts && \
    echo -e "[url \"[email protected]:<company-name>\"]\n\tinsteadOf = https://gitlab.com/<company-name>\"" >> ~/.gitconfig</company-name></company-name>
  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/ && go build -o app</company-name>

Muat Kunci dalam ssh-agent

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

ssh-add id_rsa

Membina Imej Docker

Bina imej Docker menggunakan yang berikut arahan:

DOCKER_BUILDKIT=1 docker build --progress=plain .

Menyahpepijat Sambungan SSH

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

RUN ssh -A -v -l git gitlab.com

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,

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!

Kenyataan
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
Apakah sintaks untuk membuat dan menggunakan penukaran jenis di GO?Apakah sintaks untuk membuat dan menggunakan penukaran jenis di GO?Apr 30, 2025 pm 02:25 PM

Artikel ini membincangkan penukaran jenis di GO, termasuk sintaks, amalan penukaran yang selamat, perangkap biasa, dan sumber pembelajaran. Ia menekankan penukaran dan pengendalian ralat jenis eksplisit. [159 aksara]

Apakah sintaks untuk membuat dan menggunakan penegasan jenis dalam GO?Apakah sintaks untuk membuat dan menggunakan penegasan jenis dalam GO?Apr 30, 2025 pm 02:24 PM

Artikel ini membincangkan penegasan jenis dalam GO, memberi tumpuan kepada sintaks, kesilapan yang berpotensi seperti panik dan jenis yang salah, kaedah pengendalian yang selamat, dan implikasi prestasi.

Bagaimana anda menggunakan & quot; pilih & quot; penyata dalam Go?Bagaimana anda menggunakan & quot; pilih & quot; penyata dalam Go?Apr 30, 2025 pm 02:23 PM

Artikel ini menerangkan penggunaan pernyataan "pilih" dalam GO untuk mengendalikan pelbagai operasi saluran, perbezaannya dari pernyataan "suis", dan kes penggunaan biasa seperti mengendalikan pelbagai saluran, melaksanakan waktu tamat, bukan B

Apakah sintaks untuk membuat dan menggunakan fungsi literal dalam GO?Apakah sintaks untuk membuat dan menggunakan fungsi literal dalam GO?Apr 30, 2025 pm 02:22 PM

Artikel ini membincangkan fungsi literal dalam GO, memperincikan sintaks mereka, penggunaan sebagai argumen, dan faedah seperti kod ringkas dan penutupan. Ia juga menerangkan skop berubah -ubah dalam literasi fungsi. (159 aksara)

Bagaimana anda membuat dan menggunakan penutupan fungsi di GO?Bagaimana anda membuat dan menggunakan penutupan fungsi di GO?Apr 30, 2025 pm 02:21 PM

Artikel ini menerangkan cara membuat dan menggunakan penutupan fungsi di GO, menonjolkan manfaat mereka seperti enkapsulasi dan pengurusan negara, dan membincangkan perangkap umum untuk dielakkan.

Bagaimana anda membenamkan struktur dalam perjalanan?Bagaimana anda membenamkan struktur dalam perjalanan?Apr 30, 2025 pm 02:20 PM

Artikel ini menerangkan struct embedding in Go, satu kaedah untuk membuat struktur baru yang termasuk structs lain untuk penggunaan semula kod dan sintaks mudah. Ia membincangkan faedah seperti kebolehgunaan semula kod dan tingkah laku seperti warisan, dan perincian bagaimana mengakses embed

Bagaimana anda membuat dan menggunakan penunjuk ke struktur dalam GO?Bagaimana anda membuat dan menggunakan penunjuk ke struktur dalam GO?Apr 30, 2025 pm 02:19 PM

Artikel membincangkan membuat dan menggunakan petunjuk kepada Structs di GO, faedah, pengubahsuaian, dan kesilapan umum untuk dielakkan.

Apakah sintaks untuk pemutus jenis di GO?Apakah sintaks untuk pemutus jenis di GO?Apr 30, 2025 pm 02:17 PM

Artikel ini membincangkan jenis pemutus dalam GO, memberi tumpuan kepada penukaran jenis dan penegasan jenis. Ia menerangkan sintaks, menyediakan contoh, dan menyoroti kesilapan yang berpotensi.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini

MantisBT

MantisBT

Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa