Table des matières
Contenu de la question
Solution de contournement
Maison développement back-end Golang Comment s'authentifier à l'aide d'un référentiel privé dans un conteneur Docker

Comment s'authentifier à l'aide d'un référentiel privé dans un conteneur Docker

Feb 09, 2024 am 09:40 AM
敏感数据

如何使用 Docker 容器中的私有存储库进行身份验证

l'éditeur php Strawberry vous présente comment utiliser un référentiel privé dans un conteneur Docker pour l'authentification. Docker est une plate-forme de conteneurisation populaire qui aide les développeurs à déployer et exécuter rapidement des applications dans différents environnements. Cependant, pour certaines applications sensibles ou bases de codes privées, nous devrons peut-être authentifier le référentiel dans le conteneur pour garantir que seul le personnel autorisé puisse y accéder. Cet article vous montrera comment configurer et utiliser l'authentification pour les référentiels privés afin de protéger vos données et votre code sensibles.

Contenu de la question

J'ai un référentiel git qui est un référentiel privé et je dois pouvoir m'authentifier auprès de celui-ci et pouvoir l'exécuter dans le container build 视角中查看它。有关一些背景信息,我有一个 github 工作流程,用于构建容器映像并将其发布到 ghcr.io registre. Cependant, comme le référentiel dont dépend mon package est privé, cela ne fonctionne pas. Maintenant que cela fonctionne localement, j'ai envisagé de changer la façon dont l'authentification github est stockée pour me permettre d'y accéder, mais je me demandais si quelqu'un connaissait un meilleur moyen pour moi d'accéder au référentiel privé. p>

Voici l'action github à publier dans le registre ghcr.io :

name: docker dataeng_github_metrics

# run workflow on tags starting with v (eg. v2, v1.2.0)
on:
  push:
    branches: [ "master" ]
    paths:
      - ./data_pipelines/dataeng_github_metrics/*
  pull_request:
    branches: [ "master" ]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: checkout code
        uses: actions/checkout@v1
        
      - name: login to github container registry
        uses: docker/login-action@v1
        with:
          registry: ghcr.io
          username: ${{ github.repository_owner }}
          password: ${{ secrets.ghcr_registry_token }}

      - name: set up docker buildx
        uses: docker/setup-buildx-action@v2

      - name: build and push docker image
        uses: docker/build-push-action@v3
        with:
          context: ./data_pipelines/dataeng_github_metrics/
          file: ./data_pipelines/dataeng_github_metrics/dockerfile
          push: true # will only build if this is not here
          tags: |
            ghcr.io/mirantis/dataeng_github_metrics:latest
          # todo: i cannot use dataeng as public and need to change the way gitconfig is used in the dockerfile for authentication
          secrets: |
            token=${{ secrets.automation_pat}}
Copier après la connexion

C'est dockerfile :

###############
# cache image #
###############
arg go_image=golang:1.17.3-alpine3.14
arg base_image=alpine:3.14.2

from ${go_image} as cache
# add the keys
arg github_id
env github_id=$github_id
arg github_token
env github_token=$github_token

# install git
run apk add git

# todo: encrypt the github_id and github_token
# make git configuration
run git config \
    --global \
    url."https://${github_id}:${github_token}@github.com/".insteadof \
    "https://github.com/"

workdir /src
copy go.mod go.sum /src/
run go mod download

##############
# base image #
##############
from cache as dataeng_github_metrics
copy . /bin
workdir /bin

# setup git terminal prompt & go build
run go build .

###############
# final image #
###############
from ${base_image}
copy --from=dataeng_github_metrics /bin/dataeng_github_metrics bin/
entrypoint [ "bin/dataeng_github_metrics" ]
Copier après la connexion

Je pense que la grande partie qui me déroute est la suivante, mais je me demande s'il existe une meilleure façon de le faire :

# make git configuration
run git config \
    --global \
    url."https://${github_id}:${github_token}@github.com/".insteadof \
    "https://github.com/"
Copier après la connexion

Comment accéder aux référentiels privés et éviter les erreurs suivantes dans votre workflow :

#14 9.438   remote: Repository not found.
#14 9.438   fatal: Authentication failed for 'https://github.com/Mirantis/dataeng/'
------
Dockerfile:26
--------------------
  24 |     WORKDIR /src
  25 |     COPY go.mod go.sum /src/
  26 | >>> RUN go mod download
  27 |     
  28 |     ##############
--------------------
ERROR: failed to solve: process "/bin/sh -c go mod download" did not complete successfully: exit code: 1
Error: buildx failed with: ERROR: failed to solve: process "/bin/sh -c go mod download" did not complete successfully: exit code: 1
Copier après la connexion

Solution de contournement

Dans dockerfile 中,为了使用操作传递的密钥(称为 token, afin d'utiliser la clé transmise par l'opération (appelée token), vous devez exécuter comme suit :

RUN --mount=type=secret,id=TOKEN \
    echo "machine github.com login x password $(head -n 1 /run/secrets/TOKEN)" > ~/.netrc && \
git config \
    --global \
    url."https://${GITHUB_ID}:${TOKEN}@github.com/".insteadOf \
    "https://github.com/"
Copier après la connexion

N'oubliez pas de transmettre également github_id au dockerfile

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment vérifier le mot de passe de la base de données dans Navicat Comment vérifier le mot de passe de la base de données dans Navicat Apr 23, 2024 am 09:54 AM

Comment afficher le mot de passe de la base de données via Navicat : 1. Cliquez avec le bouton droit sur la base de données cible et sélectionnez « Propriétés » 2. Allez dans l'onglet « Avancé » et cliquez sur « Afficher le mot de passe » 3. Entrez le nom d'utilisateur et le mot de passe associés pour récupérer le mot de passe ; mot de passe. Remarque : seuls les utilisateurs autorisés peuvent récupérer les mots de passe cryptés.

Lequel choisir entre nodejs et java ? Lequel choisir entre nodejs et java ? Apr 21, 2024 am 04:40 AM

Node.js et Java ont chacun leurs avantages et leurs inconvénients en matière de développement Web, et le choix dépend des exigences du projet. Node.js excelle dans les applications en temps réel, le développement rapide et l'architecture de microservices, tandis que Java excelle dans la prise en charge, les performances et la sécurité de niveau entreprise.

Comment l'adresse IP de Douyin est-elle affichée ? L'adresse IP indique-t-elle la localisation en temps réel ? Comment l'adresse IP de Douyin est-elle affichée ? L'adresse IP indique-t-elle la localisation en temps réel ? May 02, 2024 pm 01:34 PM

Les utilisateurs peuvent non seulement regarder une variété de courtes vidéos intéressantes sur Douyin, mais également publier leurs propres œuvres et interagir avec des internautes à travers le pays et même dans le monde. Ce faisant, la fonction d’affichage de l’adresse IP de Douyin a attiré une large attention. 1. Comment l'adresse IP de Douyin est-elle affichée ? La fonction d'affichage de l'adresse IP de Douyin est principalement mise en œuvre via les services de localisation géographique. Lorsqu'un utilisateur publie ou regarde une vidéo sur Douyin, Douyin obtient automatiquement les informations de localisation géographique de l'utilisateur. Ce processus est principalement divisé en les étapes suivantes : premièrement, l'utilisateur active l'application Douyin et permet à l'application d'accéder à ses informations de localisation géographique ; deuxièmement, Douyin utilise les services de localisation pour obtenir les informations de localisation géographique de l'utilisateur ; enfin, Douyin transfère les informations de localisation géographique de l'utilisateur ; informations de localisation Les informations de localisation géographique sont associées à leurs données vidéo publiées ou visionnées et seront

Outil de production de masse de disques U Kingston - une solution de copie de données en masse efficace et pratique Outil de production de masse de disques U Kingston - une solution de copie de données en masse efficace et pratique May 01, 2024 pm 06:40 PM

Introduction : Pour les entreprises et les particuliers qui ont besoin de copier des données en grande quantité, des outils de production de masse de disques U efficaces et pratiques sont indispensables. L'outil de production de masse de disques U lancé par Kingston est devenu le premier choix pour la copie de gros volumes de données en raison de ses excellentes performances et de son fonctionnement simple et facile à utiliser. Cet article présentera en détail les caractéristiques, l'utilisation et les cas d'application pratiques de l'outil de production de masse de disques flash USB de Kingston pour aider les lecteurs à mieux comprendre et utiliser cette solution de copie de données de masse efficace et pratique. Matériaux d'outils : Version du système : Windows1020H2 Modèle de marque : Kingston DataTraveler100G3 Version du logiciel du disque U : Outil de production de masse de disque Kingston U v1.2.0 1. Caractéristiques de l'outil de production de masse de disque Kingston U 1. Prend en charge plusieurs modèles de disque U : Volume de disque Kingston U

Quelle est la valeur et l'utilisation des pièces ICP ? Quelle est la valeur et l'utilisation des pièces ICP ? May 09, 2024 am 10:47 AM

En tant que jeton natif du protocole Internet Computer (IC), ICP Coin fournit un ensemble unique de valeurs et d'utilisations, notamment le stockage de valeur, la gouvernance du réseau, le stockage de données et le calcul, ainsi que l'incitation aux opérations des nœuds. ICP Coin est considéré comme une crypto-monnaie prometteuse, dont la crédibilité et la valeur augmentent avec l'adoption du protocole IC. De plus, les pièces ICP jouent un rôle important dans la gouvernance du protocole IC. Les détenteurs de pièces peuvent participer au vote et à la soumission de propositions, affectant le développement du protocole.

Sécurité des données dans l'intelligence artificielle : comment libérer la puissance de l'intelligence artificielle Sécurité des données dans l'intelligence artificielle : comment libérer la puissance de l'intelligence artificielle Apr 24, 2024 pm 06:20 PM

À l’ère du numérique, les données sont souvent considérées comme la batterie qui alimente la machine à innovation et oriente les décisions commerciales. Avec l’essor des solutions modernes telles que l’intelligence artificielle (IA) et l’apprentissage automatique (ML), les organisations ont accès à de grandes quantités de données, suffisamment pour obtenir des informations précieuses et prendre des décisions éclairées. Cependant, cela se fait au prix de pertes de données ultérieures et de problèmes de confidentialité. Alors que les organisations continuent de saisir le potentiel de l’intelligence artificielle, elles doivent trouver un équilibre entre réaliser des progrès commerciaux tout en évitant les risques potentiels. Cet article se concentre sur l'importance de la sécurité des données dans l'intelligence artificielle et sur les mesures de sécurité que les organisations peuvent prendre pour éviter les risques tout en tirant parti des solutions viables fournies par l'intelligence artificielle. En intelligence artificielle, la sécurité des données est cruciale. Les organisations doivent s’assurer que les données utilisées sont légales

La signification de * en SQL La signification de * en SQL Apr 28, 2024 am 11:09 AM

En SQL signifie toutes les colonnes, il est utilisé pour sélectionner simplement toutes les colonnes d'une table, la syntaxe est SELECT FROM table_name;. Les avantages de l'utilisation incluent la simplicité, la commodité et l'adaptation dynamique, mais en même temps, faites attention aux performances, à la sécurité des données et à la lisibilité. De plus, il peut être utilisé pour joindre des tables et des sous-requêtes.

La différence entre la base de données Oracle et MySQL La différence entre la base de données Oracle et MySQL May 10, 2024 am 01:54 AM

La base de données Oracle et MySQL sont toutes deux des bases de données basées sur le modèle relationnel, mais Oracle est supérieur en termes de compatibilité, d'évolutivité, de types de données et de sécurité ; tandis que MySQL se concentre sur la vitesse et la flexibilité et est plus adapté aux ensembles de données de petite et moyenne taille. ① Oracle propose une large gamme de types de données, ② fournit des fonctionnalités de sécurité avancées, ③ convient aux applications de niveau entreprise ; ① MySQL prend en charge les types de données NoSQL, ② a moins de mesures de sécurité et ③ convient aux applications de petite et moyenne taille.

See all articles