


Bagaimana untuk Membina Aplikasi Go dengan Modul GitLab Peribadi di Docker menggunakan 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
- Pastikan persekitaran binaan anda mempunyai openssh-client:
RUN apk --no-cache add build-base git mercurial gcc curl openssh-client
- 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
- 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
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!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

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

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

OpenSSL, sebagai perpustakaan sumber terbuka yang digunakan secara meluas dalam komunikasi yang selamat, menyediakan algoritma penyulitan, kunci dan fungsi pengurusan sijil. Walau bagaimanapun, terdapat beberapa kelemahan keselamatan yang diketahui dalam versi sejarahnya, yang sebahagiannya sangat berbahaya. Artikel ini akan memberi tumpuan kepada kelemahan umum dan langkah -langkah tindak balas untuk OpenSSL dalam sistem Debian. Debianopenssl yang dikenal pasti: OpenSSL telah mengalami beberapa kelemahan yang serius, seperti: Kerentanan Pendarahan Jantung (CVE-2014-0160): Kelemahan ini mempengaruhi OpenSSL 1.0.1 hingga 1.0.1f dan 1.0.2 hingga 1.0.2 versi beta. Penyerang boleh menggunakan kelemahan ini untuk maklumat sensitif baca yang tidak dibenarkan di pelayan, termasuk kunci penyulitan, dll.

Di bawah rangka kerja beegoorm, bagaimana untuk menentukan pangkalan data yang berkaitan dengan model? Banyak projek beego memerlukan pelbagai pangkalan data untuk dikendalikan secara serentak. Semasa menggunakan beego ...

Laluan Pembelajaran Backend: Perjalanan Eksplorasi dari Front-End ke Back-End sebagai pemula back-end yang berubah dari pembangunan front-end, anda sudah mempunyai asas Nodejs, ...

Apa yang perlu saya lakukan jika label struktur tersuai di Goland tidak dipaparkan? Apabila menggunakan Goland untuk Pembangunan Bahasa GO, banyak pemaju akan menghadapi tag struktur tersuai ...

Perpustakaan yang digunakan untuk operasi nombor terapung dalam bahasa Go memperkenalkan cara memastikan ketepatannya ...

Masalah Threading Giliran di GO Crawler Colly meneroka masalah menggunakan Perpustakaan Colly Crawler dalam bahasa Go, pemaju sering menghadapi masalah dengan benang dan permintaan beratur. � ...

Masalah menggunakan redisstream untuk melaksanakan beratur mesej dalam bahasa Go menggunakan bahasa Go dan redis ...

Artikel ini memperkenalkan cara mengkonfigurasi MongoDB pada sistem Debian untuk mencapai pengembangan automatik. Langkah -langkah utama termasuk menubuhkan set replika MongoDB dan pemantauan ruang cakera. 1. Pemasangan MongoDB Pertama, pastikan MongoDB dipasang pada sistem Debian. Pasang menggunakan arahan berikut: SudoaptDateSudoaptInstall-ImongoDB-Org 2. Mengkonfigurasi set replika replika MongoDB MongoDB Set memastikan ketersediaan dan kelebihan data yang tinggi, yang merupakan asas untuk mencapai pengembangan kapasiti automatik. Mula MongoDB Service: sudosystemctlstartmongodsudosys
