Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

406
Vistas
¿Cómo tengo varias imágenes acoplables disponibles en una etapa Git lab CI?

Tengo el siguiente .gitlab-ci.yml

 stages: - test - build - art image: golang:1.9.2 variables: BIN_NAME: example ARTIFACTS_DIR: artifacts GO_PROJECT: example GOPATH: /go before_script: - mkdir -p ${GOPATH}/src/${GO_PROJECT} - mkdir -p ${CI_PROJECT_DIR}/${ARTIFACTS_DIR} - go get -u github.com/golang/dep/cmd/dep - cp -r ${CI_PROJECT_DIR}/* ${GOPATH}/src/${GO_PROJECT}/ - cd ${GOPATH}/src/${GO_PROJECT} test: stage: test script: # Run all tests go test -run '' build: stage: build script: # Compile and name the binary as `hello` - go build -o hello - pwd - ls -l hello # Execute the binary - ./hello # Move to gitlab build directory - mv ./hello ${CI_PROJECT_DIR} artifacts: paths: - ./hello

El problema es que mi programa depende tanto de Go como de Mysql...

Soy consciente de que puedo tener una imagen acoplable diferente para cada etapa, pero mi etapa de prueba necesita ambas

 go test & MySql

Lo que he investigado:

Aprendí a crear mi propia imagen acoplable basada en el compromiso de la ventana acoplable y también a usar un archivo acoplable para crear una imagen.

Sin embargo, escuché que hay una forma de vincular los contenedores de la ventana acoplable mediante la composición de la ventana acoplable, y este parece ser un método mejor ...

No tengo idea de cómo hacer esto en GitLab, sé que necesito un archivo compose.yml pero no estoy seguro de dónde colocarlo, qué debe incluirse, ¿crea una imagen a la que luego enlace desde mi .gitlab-ci.yml archivo?

¿Quizás esto es más de matar y hay una manera más simple?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Entiendo que sus pruebas necesitan un servidor MySQL para funcionar y que está utilizando algún tipo de cliente o controlador MySQL en sus pruebas de Go.

Puede usar un service Gitlab CI que estará disponible durante su trabajo test . GitlabCI ejecutará un contenedor MySQL junto a su contenedor Go al que se podrá acceder a través de su nombre desde el contenedor Go. Por ejemplo:

 test: stage: test services: - mysql:5.7 variables: # Configure mysql environment variables (https://hub.docker.com/_/mysql/) MYSQL_DATABASE: mydb MYSQL_ROOT_PASSWORD: password script: # Run all tests go test -run ''

Iniciará un contenedor MySQL y será accesible desde el contenedor Go a través del nombre de host mysql . Tenga en cuenta que deberá definir variables para el inicio de MySQL según la sección de variables de entorno de la documentación de la imagen (como la contraseña de raíz o la base de datos para crear)

También puede definir el servicio globalmente (estará disponible para cada trabajo en su compilación) y usar un alias para que el servidor MySQL sea accesible desde otro nombre de host.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda