Puncte:0

Nu se poate lega volumul între container și alt container (docker-in-docker)

drapel cn

Încerc să-mi configurez runnerul gitlab pe MacBook-ul meu M1 pentru unele teste de mediu. Fluxul meu de lucru CI este destul de simplu: construi -> Test -> disloca. Folosesc docker executor și pentru sarcinile de testare pe care le folosesc docker-compune pentru că trebuie să implementez o bază de date pe lângă serviciul pe care vreau să-l testez.

CI-ul meu funcționează perfect pe un EC2 care rulează Ubuntu. Dar când am încercat să-mi rulez runnerul pe macOS, volumul meu ./backend nu este legat de /app. am încercat să ls /app pe backend container și cu EC2 toate fișierele și folderele sunt aici, dar nu când rulez runnerul pe macOS.

gitlab-ci.yml (acesta este doar backend_test parte:

test_backend:
  etapa: test
  necesită: ["build_backend_image"]
  imagine: docker
  Servicii:
    - docker:dind
  before_script:
    - conectare la docker -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
    - DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
    - mkdir -p $DOCKER_CONFIG/cli-plugins
    - apk adăuga curl
    - curl -SL https://github.com/docker/compose/releases/download/v2.3.3/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
    - chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
  scenariu:
    - docker compose -f docker-compose-ci.yml up -d db
    - docker exec db sh mongo_init.sh
    - docker compose -f docker-compose-ci.yml sus -d backend
    - pwd
    - ls
    - Sunt backend
    - docker exec backend pwd
    - docker exec backend ls -l
    - docker exec backend ls / -l
    - docker exec backend pip3 install --no-cache-dir --upgrade -r requirements-test.txt
    - docker exec backend pytest test --junitxml=report.xml -p no:cacheprovider
  întreruptibil: adevărat
  artefacte:
    când: întotdeauna
    rapoarte:
      junit: backend/report.xml
  reguli:
    - dacă: $CI_PIPELINE_SOURCE == 'merge_request_event'
    - dacă: $CI_COMMIT_BRANCH == „dezvoltare”
    - dacă: $CI_COMMIT_BRANCH == 'master'

gitlab-runner/config.toml:

concurente = 2
interval_verificare = 0

[server_sesiune]
  session_timeout = 1800


[[ alergători ]]
  nume = "Macbook"
  url = "https://gitlab.com/"
  simbol = "xxxxxxxxxx"
  executor = "docker"
  [runners.custom_build_dir]
  [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]
    [runners.cache.azure]
  [runners.docker]
    tls_verify = fals
    imagine = "docker:20.10.13"
    privilegiat = adevărat
    disable_entrypoint_overwrite = fals
    oom_kill_disable = fals
    disable_cache = false
    volume = ["/certs/client", "/cache"]
    shm_size = 0

EC2 runner ls ieșire:

$ docker exec backend ls /app -l
total 36
-rw-rw-rw- 1 rădăcină rădăcină 285 3 iunie 15:30 Dockerfile
-rw-rw-rw- 1 rădăcină rădăcină 325 20 mai 23:49 DockerfileTest
-rw-rw-rw- 1 rădăcină rădăcină 48 20 mai 23:49 __init__.py
drwxrwxrwx 11 root root 4096 4 iunie 17:17 aplicație
-rw-rw-rw- 1 rădăcină rădăcină 4286 4 iunie 16:41 favicon.ico
-rw-rw-rw- 1 rădăcină rădăcină 33 iunie 4 16:41 requirements-test.txt
-rw-rw-rw- 1 rădăcină rădăcină 1673 4 iunie 16:41 requirements.txt
drwxrwxrwx 6 root root 4096 4 iunie 16:41 test

ieșire macOS runner ls:

$ docker exec backend ls /app -l
total 0

docker-compose-ci.yml:

Servicii:
  backend:
    container_name: backend
    imagine: $CI_REGISTRY_IMAGE/backend:$CI_COMMIT_SHA
    volume:
      - ./backend:/app
    retele:
      Mod implicit:
    porturi:
      - 8000:8000
      - 587:587
      - 443:443
    depinde de:
      - db

  db:
    nume_container: db
    imagine: mongo
    volume:
      - ./mongo_init.sh:/mongo_init.sh:ro
    retele:
      Mod implicit:
    mediu inconjurator:
      MONGO_INITDB_DATABASE: xxxxxxx
      MONGO_INITDB_ROOT_USERNAME: administrator
      MONGO_INITDB_ROOT_PASSWORD: administrator
    porturi:
      - 27017:27017


retele:
  Mod implicit:
    şofer: pod

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.