Rádala Shell GitLab. Seoladh iomaíoch ar sheirbhísí tástála ag baint úsáide as Docker Compose

Rádala Shell GitLab. Seoladh iomaíoch ar sheirbhísí tástála ag baint úsáide as Docker Compose

Beidh an t-alt seo ina ábhar spéise do thástálaithe agus d'fhorbróirí araon, ach tá sé dírithe go príomha do speisialtóirí uathoibrithe a bhfuil fadhb acu le GitLab CI/CD a bhunú le haghaidh tástála comhtháthaithe i gcoinníollacha acmhainní bonneagair neamhleor agus/nó mura bhfuil coimeádán ann. ardán ceolfhoirne. Inseoidh mé duit conas imscaradh timpeallachtaí tástála a shocrú ag baint úsáide as cumadóireacht docker ar aon rádala sliogáin GitLab amháin agus ionas nach gcuirfidh na seirbhísí seolta isteach ar a chéile nuair a bhíonn roinnt timpeallachtaí á n-imscaradh.


Ábhar

Réamhriachtanais

  1. I mo chleachtas, is minic a tharla sé gur “caitear” le tástáil chomhtháthaithe ar thionscadail. Agus is minic gurb é an chéad fhadhb agus an fhadhb is suntasaí ná píblíne CI, ina ndéantar tástáil chomhtháthaithe á fhorbairt cuirtear seirbhís(í) i gcrích i dtimpeallacht forbartha/céime. Ba chúis leis seo go leor fadhbanna:

    • Mar gheall ar lochtanna i seirbhís ar leith le linn tástála comhtháthaithe, féadfaidh sonraí briste damáiste a dhéanamh don chiorcad tástála. Bhí cásanna ann nuair a seoladh iarratas le formáid JSON briste, tuairteála an tseirbhís, rud a d'fhág nach raibh an seastán inoibrithe go hiomlán.
    • Moilliú ar an gciorcad tástála de réir mar a mhéadaíonn na sonraí tástála. Is dóigh liom nach ndéanann sé aon chiall cur síos a dhéanamh ar shampla agus an bunachar sonraí a ghlanadh/a rolladh siar. I mo chleachtas, níor tháinig mé ar thionscadal ina ndeachaigh an nós imeachta seo go réidh.
    • Riosca cur isteach ar fheidhmiúlacht an chiorcaid tástála nuair a bhíonn socruithe ginearálta an chórais á thástáil. Mar shampla, polasaí úsáideora/grúpa/focal faire/iarratais.
    • Déanann sonraí tástála ó thástálacha uathoibrithe an saol deacair do thástálaithe láimhe.

    Déarfaidh roinnt gur cheart d’autotests maith na sonraí a ghlanadh tar éis iad féin. Tá argóintí agam i gcoinne:

    • Tá seastáin dinimiciúla an-áisiúil le húsáid.
    • Ní féidir gach réad a bhaint den chóras tríd an API. Mar shampla, níor cuireadh glao chun réad a scriosadh i bhfeidhm toisc go dtagann sé salach ar loighic an ghnó.
    • Nuair a chruthaítear réad tríd an API, is féidir méid ollmhór meiteashonraí a chruthú, rud a mbíonn fadhbanna le scriosadh.
    • Má tá spleáchais ag tástálacha ina measc féin, ansin déantar tinneas cinn ar an bpróiseas chun sonraí a ghlanadh tar éis tástálacha a reáchtáil.
    • Glaonna breise (agus, i mo thuairim, nach bhfuil údar maith leo) chuig an API.
    • Agus an phríomh-argóint: nuair a thosaíonn sonraí tástála a ghlanadh go díreach ón mbunachar sonraí. Is fíor-sorcas PK/FK é seo! Cloisimid ó fhorbróirí: “Tá mé díreach tar éis comhartha a chur leis/a bhaint/a athainmniú, cén fáth ar gabhadh 100500 tástáil chomhtháthaithe?”

    Is é mo thuairim gurb é an réiteach is fearr ná timpeallacht dhinimiciúil.

  2. Úsáideann go leor daoine cumadóireacht dhuganna chun timpeallacht tástála a reáchtáil, ach is beag duine a úsáideann cumadóireacht dhuganna agus iad ag déanamh tástála comhtháthaithe in CI/CD. Agus anseo nílim ag cur san áireamh kubernetes, Swarm agus ardáin orchestration coimeádán eile. Níl siad ag gach cuideachta. Bheadh ​​sé go deas dá mbeadh docker-compose.yml uilíoch.
  3. Fiú má tá ár rádala QA féin againn, conas is féidir linn a chinntiú nach gcuirfidh seirbhísí a sheoltar trí chumadóireacht docker isteach ar a chéile?
  4. Conas logaí de sheirbhísí tástálaithe a bhailiú?
  5. Conas an rádala a ghlanadh?

Tá mo rádala GitLab féin agam do mo thionscadail agus tháinig mé ar na ceisteanna seo le linn na forbartha Java cliant le haghaidh TástáilRail. Níos cruinne, nuair a bhíonn tástálacha comhtháthú á rith. Anseo thíos déanfaimid na saincheisteanna seo a réiteach trí úsáid a bhaint as samplaí ón tionscadal seo.

Chun an t-ábhar

Rádala Shell GitLab

Le haghaidh rádala, molaim meaisín fíorúil Linux le 4 vCPU, 4 GB RAM, 50 GB HDD.
Tá go leor faisnéise ar fáil faoi shocrú gitlab-runner ar an Idirlíon, mar sin go hachomair:

  • Logáil isteach sa mheaisín trí SSH
  • Má tá níos lú ná 8 GB RAM agat, molaim duit déan babhtáil 10 GBionas nach dtiocfaidh an killer OOM chun ár gcuid tascanna a mharú mar gheall ar easpa RAM. Féadfaidh sé seo tarlú nuair a sheoltar níos mó ná 5 thasc ag an am céanna. Déanfaidh na tascanna dul chun cinn níos moille, ach go seasta.

    Sampla le killer OOM

    Má fheiceann tú sna logaí tasc bash: line 82: 26474 Killed, ansin ach a fhorghníomhú ar an rádala sudo dmesg | grep 26474

    [26474]  1002 26474  1061935   123806     339        0             0 java
    Out of memory: Kill process 26474 (java) score 127 or sacrifice child
    Killed process 26474 (java) total-vm:4247740kB, anon-rss:495224kB, file-rss:0kB, shmem-rss:0kB

    Agus má bhreathnaíonn an pictiúr rud éigin mar seo, ansin cuir babhtáil nó cuir RAM leis.

  • Socraigh gitlab-rádala, docker, docker-cum, Déan.
  • úsáideoir á chur leis gitlab-runner don ghrúpa docker
    sudo groupadd docker
    sudo usermod -aG docker gitlab-runner
  • Clár gitlab-rádala.
  • Oscailte le haghaidh eagarthóireachta /etc/gitlab-runner/config.toml agus cuir

    concurrent=20
    [[runners]]
      request_concurrency = 10

    Tabharfaidh sé seo deis duit tascanna comhthreomhara a reáchtáil ar rádala amháin. Leigh Nios mo anseo.
    Má tá meaisín níos cumhachtaí agat, mar shampla 8 vCPU, 16 GB RAM, is féidir na huimhreacha seo a dhéanamh ar a laghad 2 uair níos mó. Ach braitheann sé go léir ar cad go díreach a sheolfar ar an rádala seo agus cén chainníocht.

Tá sé go leor.

Chun an t-ábhar

Ag ullmhú docker-compose.yml

Is é an príomhthasc ná docker-compose.yml uilíoch, ar féidir le forbróirí/tástálaithe a úsáid go háitiúil agus sa phíblíne CI.

Ar an gcéad dul síos, déanaimid ainmneacha seirbhíse uathúla do CI. Is é ceann de na hathróga uathúla i GitLab CI an athróg CI_JOB_ID. Má shonraíonn tú container_name le brí "service-${CI_JOB_ID:-local}", ansin i gcás:

  • más rud é go CI_JOB_ID nach bhfuil sainithe in athróga comhshaoil,
    ansin beidh an t-ainm seirbhíse service-local
  • más rud é go CI_JOB_ID sainmhínithe in athróga timpeallachta (mar shampla 123),
    ansin beidh an t-ainm seirbhíse service-123

Ar an dara dul síos, cruthaímid líonra coiteann do sheirbhísí seolta. Tugann sé seo leithlisiú leibhéal líonra dúinn agus muid ag rith il-thimpeallachtaí tástála.

networks:
  default:
    external:
      name: service-network-${CI_JOB_ID:-local}

I ndáiríre, is é seo an chéad chéim chun rath =)

Sampla de mo docker-compose.yml le tuairimí

version: "3"

# Для корректной работы web (php) и fmt нужно, 
# чтобы контейнеры имели общий исполняемый контент.
# В нашем случае, это директория /var/www/testrail
volumes:
  static-content:

# Изолируем окружение на сетевом уровне
networks:
  default:
    external:
      name: testrail-network-${CI_JOB_ID:-local}

services:
  db:
    image: mysql:5.7.22
    # Каждый container_name содержит ${CI_JOB_ID:-local}
    container_name: "testrail-mysql-${CI_JOB_ID:-local}"
    environment:
      MYSQL_HOST: db
      MYSQL_DATABASE: mydb
      MYSQL_ROOT_PASSWORD: 1234
      SKIP_GRANT_TABLES: 1
      SKIP_NETWORKING: 1
      SERVICE_TAGS: dev
      SERVICE_NAME: mysql
    networks:
    - default

  migration:
    image: registry.gitlab.com/touchbit/image/testrail/migration:latest
    container_name: "testrail-migration-${CI_JOB_ID:-local}"
    links:
    - db
    depends_on:
    - db
    networks:
    - default

  fpm:
    image: registry.gitlab.com/touchbit/image/testrail/fpm:latest
    container_name: "testrail-fpm-${CI_JOB_ID:-local}"
    volumes:
    - static-content:/var/www/testrail
    links:
    - db
    networks:
    - default

  web:
    image: registry.gitlab.com/touchbit/image/testrail/web:latest
    container_name: "testrail-web-${CI_JOB_ID:-local}"
    # Если переменные TR_HTTP_PORT или TR_HTTPS_PORTS не определены,
    # то сервис поднимается на 80 и 443 порту соответственно.
    ports:
      - ${TR_HTTP_PORT:-80}:80
      - ${TR_HTTPS_PORT:-443}:443
    volumes:
      - static-content:/var/www/testrail
    links:
      - db
      - fpm
    networks:
      - default

Sampla rith áitiúil

docker-compose -f docker-compose.yml up -d
Starting   testrail-mysql-local     ... done
Starting   testrail-migration-local ... done
Starting   testrail-fpm-local       ... done
Recreating testrail-web-local       ... done

Ach níl gach rud chomh simplí le seoladh i CI.

Chun an t-ábhar

An Makefile a ullmhú

Úsáidim Makefile mar tá sé an-áisiúil do bhainistíocht comhshaoil ​​áitiúil agus do CI araon. Tuilleadh tuairimí ar líne

# У меня в проектах все вспомогательные вещи лежат в директории `.indirect`,
# в том числе и `docker-compose.yml`

# Использовать bash с опцией pipefail 
# pipefail - фейлит выполнение пайпа, если команда выполнилась с ошибкой
SHELL=/bin/bash -o pipefail

# Останавливаем контейнеры и удаляем сеть
docker-kill:
    docker-compose -f $${CI_JOB_ID:-.indirect}/docker-compose.yml kill
    docker network rm network-$${CI_JOB_ID:-testrail} || true

# Предварительно выполняем docker-kill 
docker-up: docker-kill
    # Создаем сеть для окружения 
    docker network create network-$${CI_JOB_ID:-testrail}
    # Забираем последние образы из docker-registry
    docker-compose -f $${CI_JOB_ID:-.indirect}/docker-compose.yml pull
    # Запускаем окружение
    # force-recreate - принудительное пересоздание контейнеров
    # renew-anon-volumes - не использовать volumes предыдущих контейнеров
    docker-compose -f $${CI_JOB_ID:-.indirect}/docker-compose.yml up --force-recreate --renew-anon-volumes -d
    # Ну и, на всякий случай, вывести что там у нас в принципе запущено на машинке
    docker ps

# Коллектим логи сервисов
docker-logs:
    mkdir ./logs || true
    docker logs testrail-web-$${CI_JOB_ID:-local}       >& logs/testrail-web.log
    docker logs testrail-fpm-$${CI_JOB_ID:-local}       >& logs/testrail-fpm.log
    docker logs testrail-migration-$${CI_JOB_ID:-local} >& logs/testrail-migration.log
    docker logs testrail-mysql-$${CI_JOB_ID:-local}     >& logs/testrail-mysql.log

# Очистка раннера
docker-clean:
    @echo Останавливаем все testrail-контейнеры
    docker kill $$(docker ps --filter=name=testrail -q) || true
    @echo Очистка докер контейнеров
    docker rm -f $$(docker ps -a -f --filter=name=testrail status=exited -q) || true
    @echo Очистка dangling образов
    docker rmi -f $$(docker images -f "dangling=true" -q) || true
    @echo Очистка testrail образов
    docker rmi -f $$(docker images --filter=reference='registry.gitlab.com/touchbit/image/testrail/*' -q) || true
    @echo Очистка всех неиспользуемых volume
    docker volume rm -f $$(docker volume ls -q) || true
    @echo Очистка всех testrail сетей
    docker network rm $(docker network ls --filter=name=testrail -q) || true
    docker ps

Seiceáil

dhéanamh docker-up

$ make docker-up 
docker-compose -f ${CI_JOB_ID:-.indirect}/docker-compose.yml kill
Killing testrail-web-local   ... done
Killing testrail-fpm-local   ... done
Killing testrail-mysql-local ... done
docker network rm network-${CI_JOB_ID:-testrail} || true
network-testrail
docker network create network-${CI_JOB_ID:-testrail}
d2ec063324081c8bbc1b08fd92242c2ea59d70cf4025fab8efcbc5c6360f083f
docker-compose -f ${CI_JOB_ID:-.indirect}/docker-compose.yml pull
Pulling db        ... done
Pulling migration ... done
Pulling fpm       ... done
Pulling web       ... done
docker-compose -f ${CI_JOB_ID:-.indirect}/docker-compose.yml up --force-recreate --renew-anon-volumes -d
Recreating testrail-mysql-local ... done
Recreating testrail-fpm-local       ... done
Recreating testrail-migration-local ... done
Recreating testrail-web-local       ... done
docker ps
CONTAINER ID  PORTS                                     NAMES
a845d3cb0e5a  0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp  testrail-web-local
19d8ef001398  9000/tcp                                  testrail-fpm-local
e28840a2369c  3306/tcp, 33060/tcp                       testrail-migration-local
0e7900c23f37  3306/tcp                                  testrail-mysql-local

dhéanamh docker-logs

$ make docker-logs
mkdir ./logs || true
mkdir: cannot create directory ‘./logs’: File exists
docker logs testrail-web-${CI_JOB_ID:-local}       >& logs/testrail-web.log
docker logs testrail-fpm-${CI_JOB_ID:-local}       >& logs/testrail-fpm.log
docker logs testrail-migration-${CI_JOB_ID:-local} >& logs/testrail-migration.log
docker logs testrail-mysql-${CI_JOB_ID:-local}     >& logs/testrail-mysql.log

Rádala Shell GitLab. Seoladh iomaíoch ar sheirbhísí tástála ag baint úsáide as Docker Compose

Chun an t-ábhar

Ag ullmhú .gitlab-ci.yml

Trialacha comhtháthaithe a rith

Integration:
  stage: test
  tags:
    - my-shell-runner
  before_script:
    # Аутентифицируемся в registry
    - docker login -u gitlab-ci-token -p ${CI_JOB_TOKEN} ${CI_REGISTRY}
    # Генерируем псевдоуникальные TR_HTTP_PORT и TR_HTTPS_PORT
    - export TR_HTTP_PORT=$(shuf -i10000-60000 -n1)
    - export TR_HTTPS_PORT=$(shuf -i10000-60000 -n1)
    # создаем директорию с идентификатором задачи
    - mkdir ${CI_JOB_ID}
    # копируем в созданную директорию наш docker-compose.yml
    # чтобы контекст был разный для каждой задачи
    - cp .indirect/docker-compose.yml ${CI_JOB_ID}/docker-compose.yml
  script:
    # поднимаем наше окружение
    - make docker-up
    # запускаем тесты исполняемым jar (у меня так)
    - java -jar itest.jar --http-port ${TR_HTTP_PORT} --https-port ${TR_HTTPS_PORT}
    # или в контейнере
    - docker run --network=testrail-network-${CI_JOB_ID:-local} --rm itest
  after_script:
    # собираем логи
    - make docker-logs
    # останавливаем окружение
    - make docker-kill
  artifacts:
    # сохраняем логи
    when: always
    paths:
      - logs
    expire_in: 30 days

Mar thoradh ar thasc den sórt sin a rith, beidh logaí seirbhíse agus tástála san eolaire logaí sna déantáin. Atá an-áisiúil i gcás earráidí. Scríobhann gach tástáil ag an am céanna a logáil féin, ach beidh mé ag caint faoi seo ar leithligh.

Rádala Shell GitLab. Seoladh iomaíoch ar sheirbhísí tástála ag baint úsáide as Docker Compose

Chun an t-ábhar

Glanadh an rádala

Ní sheolfar an tasc ach de réir sceidil.

stages:
- clean
- build
- test

Clean runner:
  stage: clean
  only:
    - schedules
  tags:
    - my-shell-runner
  script:
    - make docker-clean

Ansin, téigh chuig ár dtionscadal GitLab -> CI/CD -> Sceidil -> Sceideal Nua agus cuir sceideal nua leis

Rádala Shell GitLab. Seoladh iomaíoch ar sheirbhísí tástála ag baint úsáide as Docker Compose

Chun an t-ábhar

Toradh

Ag seoladh 4 thasc i GitLab CI
Rádala Shell GitLab. Seoladh iomaíoch ar sheirbhísí tástála ag baint úsáide as Docker Compose

I logaí an taisc dheireanach le tástálacha comhtháthaithe feicimid coimeádáin ó thascanna éagsúla

CONTAINER ID  NAMES
c6b76f9135ed  testrail-web-204645172
01d303262d8e  testrail-fpm-204645172
2cdab1edbf6a  testrail-migration-204645172
826aaf7c0a29  testrail-mysql-204645172
6dbb3fae0322  testrail-web-204645084
3540f8d448ce  testrail-fpm-204645084
70fea72aa10d  testrail-mysql-204645084
d8aa24b2892d  testrail-web-204644881
6d4ccd910fad  testrail-fpm-204644881
685d8023a3ec  testrail-mysql-204644881
1cdfc692003a  testrail-web-204644793
6f26dfb2683e  testrail-fpm-204644793
029e16b26201  testrail-mysql-204644793
c10443222ac6  testrail-web-204567103
04339229397e  testrail-fpm-204567103
6ae0accab28d  testrail-mysql-204567103
b66b60d79e43  testrail-web-204553690
033b1f46afa9  testrail-fpm-204553690
a8879c5ef941  testrail-mysql-204553690
069954ba6010  testrail-web-204553539
ed6b17d911a5  testrail-fpm-204553539
1a1eed057ea0  testrail-mysql-204553539

Logchomhad níos mionsonraithe

$ docker login -u gitlab-ci-token -p ${CI_JOB_TOKEN} ${CI_REGISTRY}
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /home/gitlab-runner/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
$ export TR_HTTP_PORT=$(shuf -i10000-60000 -n1)
$ export TR_HTTPS_PORT=$(shuf -i10000-60000 -n1)
$ mkdir ${CI_JOB_ID}
$ cp .indirect/docker-compose.yml ${CI_JOB_ID}/docker-compose.yml
$ make docker-up
docker-compose -f ${CI_JOB_ID:-.indirect}/docker-compose.yml kill
docker network rm testrail-network-${CI_JOB_ID:-local} || true
Error: No such network: testrail-network-204645172
docker network create testrail-network-${CI_JOB_ID:-local}
0a59552b4464b8ab484de6ae5054f3d5752902910bacb0a7b5eca698766d0331
docker-compose -f ${CI_JOB_ID:-.indirect}/docker-compose.yml pull
Pulling web       ... done
Pulling fpm       ... done
Pulling migration ... done
Pulling db        ... done
docker-compose -f ${CI_JOB_ID:-.indirect}/docker-compose.yml up --force-recreate --renew-anon-volumes -d
Creating volume "204645172_static-content" with default driver
Creating testrail-mysql-204645172 ... 
Creating testrail-mysql-204645172 ... done
Creating testrail-migration-204645172 ... done
Creating testrail-fpm-204645172       ... done
Creating testrail-web-204645172       ... done
docker ps
CONTAINER ID        IMAGE                                                          COMMAND                  CREATED              STATUS              PORTS                                           NAMES
c6b76f9135ed        registry.gitlab.com/touchbit/image/testrail/web:latest         "nginx -g 'daemon of…"   13 seconds ago       Up 1 second         0.0.0.0:51148->80/tcp, 0.0.0.0:25426->443/tcp   testrail-web-204645172
01d303262d8e        registry.gitlab.com/touchbit/image/testrail/fpm:latest         "docker-php-entrypoi…"   16 seconds ago       Up 13 seconds       9000/tcp                                        testrail-fpm-204645172
2cdab1edbf6a        registry.gitlab.com/touchbit/image/testrail/migration:latest   "docker-entrypoint.s…"   16 seconds ago       Up 13 seconds       3306/tcp, 33060/tcp                             testrail-migration-204645172
826aaf7c0a29        mysql:5.7.22                                                   "docker-entrypoint.s…"   18 seconds ago       Up 16 seconds       3306/tcp                                        testrail-mysql-204645172
6dbb3fae0322        registry.gitlab.com/touchbit/image/testrail/web:latest         "nginx -g 'daemon of…"   36 seconds ago       Up 22 seconds       0.0.0.0:44202->80/tcp, 0.0.0.0:20151->443/tcp   testrail-web-204645084
3540f8d448ce        registry.gitlab.com/touchbit/image/testrail/fpm:latest         "docker-php-entrypoi…"   38 seconds ago       Up 35 seconds       9000/tcp                                        testrail-fpm-204645084
70fea72aa10d        mysql:5.7.22                                                   "docker-entrypoint.s…"   40 seconds ago       Up 37 seconds       3306/tcp                                        testrail-mysql-204645084
d8aa24b2892d        registry.gitlab.com/touchbit/image/testrail/web:latest         "nginx -g 'daemon of…"   About a minute ago   Up 53 seconds       0.0.0.0:31103->80/tcp, 0.0.0.0:43872->443/tcp   testrail-web-204644881
6d4ccd910fad        registry.gitlab.com/touchbit/image/testrail/fpm:latest         "docker-php-entrypoi…"   About a minute ago   Up About a minute   9000/tcp                                        testrail-fpm-204644881
685d8023a3ec        mysql:5.7.22                                                   "docker-entrypoint.s…"   About a minute ago   Up About a minute   3306/tcp                                        testrail-mysql-204644881
1cdfc692003a        registry.gitlab.com/touchbit/image/testrail/web:latest         "nginx -g 'daemon of…"   About a minute ago   Up About a minute   0.0.0.0:44752->80/tcp, 0.0.0.0:23540->443/tcp   testrail-web-204644793
6f26dfb2683e        registry.gitlab.com/touchbit/image/testrail/fpm:latest         "docker-php-entrypoi…"   About a minute ago   Up About a minute   9000/tcp                                        testrail-fpm-204644793
029e16b26201        mysql:5.7.22                                                   "docker-entrypoint.s…"   About a minute ago   Up About a minute   3306/tcp                                        testrail-mysql-204644793
c10443222ac6        registry.gitlab.com/touchbit/image/testrail/web:latest         "nginx -g 'daemon of…"   5 hours ago          Up 5 hours          0.0.0.0:57123->80/tcp, 0.0.0.0:31657->443/tcp   testrail-web-204567103
04339229397e        registry.gitlab.com/touchbit/image/testrail/fpm:latest         "docker-php-entrypoi…"   5 hours ago          Up 5 hours          9000/tcp                                        testrail-fpm-204567103
6ae0accab28d        mysql:5.7.22                                                   "docker-entrypoint.s…"   5 hours ago          Up 5 hours          3306/tcp                                        testrail-mysql-204567103
b66b60d79e43        registry.gitlab.com/touchbit/image/testrail/web:latest         "nginx -g 'daemon of…"   5 hours ago          Up 5 hours          0.0.0.0:56321->80/tcp, 0.0.0.0:58749->443/tcp   testrail-web-204553690
033b1f46afa9        registry.gitlab.com/touchbit/image/testrail/fpm:latest         "docker-php-entrypoi…"   5 hours ago          Up 5 hours          9000/tcp                                        testrail-fpm-204553690
a8879c5ef941        mysql:5.7.22                                                   "docker-entrypoint.s…"   5 hours ago          Up 5 hours          3306/tcp                                        testrail-mysql-204553690
069954ba6010        registry.gitlab.com/touchbit/image/testrail/web:latest         "nginx -g 'daemon of…"   5 hours ago          Up 5 hours          0.0.0.0:32869->80/tcp, 0.0.0.0:16066->443/tcp   testrail-web-204553539
ed6b17d911a5        registry.gitlab.com/touchbit/image/testrail/fpm:latest         "docker-php-entrypoi…"   5 hours ago          Up 5 hours          9000/tcp                                        testrail-fpm-204553539
1a1eed057ea0        mysql:5.7.22                                                   "docker-entrypoint.s…"   5 hours ago          Up 5 hours          3306/tcp                                        testrail-mysql-204553539

Críochnaíodh na tascanna go léir go rathúil

Tá logaí seirbhíse agus tástála i ndéantúsáin tasc
Rádala Shell GitLab. Seoladh iomaíoch ar sheirbhísí tástála ag baint úsáide as Docker Compose

Rádala Shell GitLab. Seoladh iomaíoch ar sheirbhísí tástála ag baint úsáide as Docker Compose

Is cosúil go bhfuil gach rud álainn, ach tá nuance ann. Is féidir píblíne a chur ar ceal i bhfeidhm agus tástálacha comhtháthaithe ar siúl, agus sa chás sin ní stopfar coimeádáin a rith. Ó am go chéile ní mór duit an rádala a ghlanadh. Ar an drochuair, tá an tasc chun feabhas a chur ar GitLab CE fós i stádas Oscail

Ach tá seoladh taisc curtha leis againn de réir sceidil, agus ní chuireann aon duine cosc ​​orainn é a rith de láimh.
Téigh go dtí ár dtionscadal -> CI / CD -> Sceidil agus rith an tasc Clean runner

Rádala Shell GitLab. Seoladh iomaíoch ar sheirbhísí tástála ag baint úsáide as Docker Compose

Iomlán:

  • Tá rádala blaosc amháin againn.
  • Níl aon choinbhleachtaí idir tascanna agus an timpeallacht.
  • Reáchtálaimid tascanna le tástálacha comhtháthaithe ag an am céanna.
  • Is féidir leat tástálacha comhtháthaithe a rith go háitiúil nó i gcoimeádán.
  • Bailítear logaí seirbhíse agus tástála agus ceanglaítear iad leis an tasc píblíne.
  • Is féidir an rádala a ghlanadh ó shean-íomhánna Docker.

Is é ~2 uair an t-am socraithe.
Sin uile, i ndáiríre. Beidh áthas orm aiseolas a fháil.

Chun an t-ábhar

Foinse: will.com

Add a comment