"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Administre e instale fácilmente sus módulos Go privados

Administre e instale fácilmente sus módulos Go privados

Publicado el 2024-08-23
Navegar:469

Easily manage and install your private Go modules

Para los desarrolladores de Golang, administrar e instalar módulos Go suele ser sencillo cuando se trata de repositorios públicos. Sin embargo, las cosas se vuelven más complicadas cuando necesitas trabajar con módulos Go privados.

La cadena de herramientas de módulos Go no proporciona un mecanismo integrado para trabajar con módulos privados más allá del uso de un GOPROXY privado, y configurar y mantener uno adecuadamente no es una opción para todos los desarrolladores u organizaciones. Algunos servicios de repositorio de paquetes admiten el trabajo con módulos privados de Go, pero generalmente no brindan la experiencia más limpia para los desarrolladores.

Por esta razón, en la mayoría de los casos, terminamos organizando configuraciones complejas de Git (.netrc o .gitconfig) combinadas con algunas variables de entorno de Go para administrar la autenticación con nuestros repositorios privados cuando usamos go get, go install o go mod download. .

El problema con estas configuraciones de Git es que no son evidentes para todos los desarrolladores y pueden ser inseguras ya que pueden requerir el almacenamiento de credenciales de texto sin formato en el sistema de archivos. Estos problemas se vuelven aún más problemáticos al configurar sistemas CI/CD, crear imágenes de Docker, etc.

Presentamos goproxy.dev

Como desarrolladores de Golang desde hace mucho tiempo (desde la época en que los módulos de Go ni siquiera existían), siempre hemos soñado con un momento en el que trabajar con bibliotecas privadas de Go fuera tan fácil y poderoso como trabajar con las públicas.

Imagínese desarrollar y enviar sus bibliotecas Go privadas a GitHub e inmediatamente obtener -u los nuevos cambios del código fuente de su proyecto configurando solo la variable de entorno GOPROXY. Sin configuraciones de Git complicadas e inseguras, sin mantenimiento de GOPROXY autohospedado, sin flujos de trabajo de publicación complejos y propensos a errores, y la misma configuración para su máquina de desarrollo local, Dockerfile y entorno CI/CD.

Saluda a goproxy.dev, un servicio GOPROXY privado que se integra con GitHub para brindarte instalación perfecta de módulos privados Go.

Cómo configurar goproxy.dev en su flujo de trabajo de desarrollo

Simplemente inicia sesión en goproxy.dev con tu cuenta de GitHub, otorga acceso a los repositorios privados que usarás y exporta tus variables de entorno GOPROXY y GONOSUMDB.

export [email protected],proxy.golang.org,direct
export GONOSUMDB=github.com/your-organization

Estas variables de entorno de Go se pueden configurar directamente desde la configuración de su shell (.zshrc, .bashrc, etc.) o usando go env -w.

Luego puedes ejecutar tus comandos go habituales para instalar y descargar tus módulos privados.

go get github.com/your-organization/[email protected]
go install github.com/your-organization/go-module/cmd
...
go mod download

Cómo utilizar goproxy.dev para crear imágenes de Docker

La integración con goproxy.dev solo requiere configurar dos variables de entorno. La mejor manera de hacerlo durante una compilación de Docker es mediante la función de secretos de compilación de Docker.

Dentro de tu Dockerfile:

COPY go.mod go.sum ./
RUN --mount=type=secret,id=GOPROXY \
    GOPROXY=$(cat /run/secrets/GOPROXY) \
    GONOSUMDB=github.com/your-organization \
    go mod download
RUN go build .

Y la carrera:

GOPROXY="[your GOPROXY value]" docker build --secret id=GOPROXY

Cómo usar goproxy.dev de GitHub Actions

Simplemente configura un secreto para tus GitHub Actions que contenga tu URL de GOPROXY y úsalo desde tus flujos de trabajo:

jobs:
  build:
    - run: |
        go mod download
        go build .
      env:
        GOPROXY: ${{ secrets.PRIVATE_GOPROXY }}
        GONOSUMDB: github.com/your-organization

 Simplifique su flujo de trabajo de desarrollo de Go hoy

Con goproxy.dev tendrás la mejor experiencia de desarrollador al consumir bibliotecas con Go. Ya sea que dependa de bibliotecas públicas de código abierto o de módulos privados de su organización, tendrá un flujo de trabajo unificado: configure su variable de entorno GOPROXY y obtenga dependencias para una versión específica, una rama de Git o una confirmación.

Obtenga más información y comience a usar goproxy.dev hoy registrándose para nuestra prueba gratuita de 14 días.

Declaración de liberación Este artículo se reproduce en: https://dev.to/goproxydev/easily-manage-and-install-your-private-go-modules-g74?1 Si hay alguna infracción, comuníquese con [email protected] para eliminar él
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3