Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

405
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!