172 похожих чатов

Я вообще только разбираюсь как работает доккер раннер. Прочел документацию,

но не совсем все понял. Просто для билда моего проекта есть компос файл, в нем описано какие контейнеры запустить, обычно я выполнял build/up этого компос файла и проект благополучно билдился. Но теперь я хочу сделать автоматический процес билда в гитлабе, и я не пойму подходит ли для меня вариант доккер раннера. Я создаю докер раннер, прописую в gitlab-ci.yml build/up своего компос файла и я так понимаю что получается какая-то шляпа, у меня контейнеры в контейнере создаются получается? Как это работает? Мне нужно содержимое компос файла перенести в gitla-ci.yml или что?

2 ответов

8 просмотров

у тебя докер в докере запускается а там уже как опишешь процесс, у меня дальше идет билд докер файла и копирование но я все одним докером делаю, в докер ранере у меня запускается кастомный контейнер

--- services: - docker:dind variables: GIT_DEPTH: "1" stages: - build - docker - deploy build: stage: build image: microsoft/dotnet:2.0.7-sdk-2.1.200 cache: key: build-cache paths: - .nuget/ artifacts: paths: - docker/bin expire_in: 1 day script: - dotnet restore --packages .nuget/packages src - dotnet publish -c Release -o $PWD/docker/bin src/Blythe.Web/Blythe.Web.csproj docker: stage: docker image: docker:stable cache: {} dependencies: - build before_script: - echo "$CI_BUILD_TOKEN" | docker login --username gitlab-ci-token "$CI_REGISTRY" --password-stdin script: - docker build --file docker/Dockerfile --tag $CI_REGISTRY_IMAGE:latest --tag $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA ./docker - docker push $CI_REGISTRY_IMAGE:latest - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA only: - develop - master .ssh_key: &ssh_key before_script: - > if [[ -z "${SSH_PRIVATE_KEY}" ]]; then echo "ERR not set variable or not protect." exit 1 fi - apk add --no-cache --update openssh-client - eval $(ssh-agent -s) - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null - mkdir -p ~/.ssh - chmod 700 ~/.ssh - echo "$SSH_KNOWN_HOSTS" > ~/.ssh/known_hosts - chmod 644 ~/.ssh/known_hosts stage_server: stage: deploy image: docker:stable variables: SERVER: **** USER_SSH: **** PROJECT_DIR: '***' TYPE: 'stage' cache: {} dependencies: [] <<: *ssh_key script: - ssh $USER_SSH@$SERVER -t 'set -e ; mkdir -p '$PROJECT_DIR - scp ./docker/docker-compose-$TYPE.yml $USER_SSH@$SERVER:$PROJECT_DIR/docker-compose.yml - echo "IMAGE=$CI_REGISTRY_IMAGE:$CI_COMMIT_SHA" > ./.env_$TYPE - scp ./.env_$TYPE $USER_SSH@$SERVER:$PROJECT_DIR/.env - ssh $USER_SSH@$SERVER -t 'set -e ; cd '$PROJECT_DIR' ; docker-compose up -d --remove-orphans' only: variables: - $SSH_PRIVATE_KEY prod_server: stage: deploy image: docker:stable variables: SERVER: **** USER_SSH: **** PROJECT_DIR: '****' TYPE: 'prod' cache: {} dependencies: [] <<: *ssh_key script: - ssh $USER_SSH@$SERVER -t 'set -e ; mkdir -p '$PROJECT_DIR' ; /usr/local/bin/backup.py blythe blythe_postgres_1 blythe' - scp ./docker/docker-compose-$TYPE.yml $USER_SSH@$SERVER:$PROJECT_DIR/docker-compose.yml - echo "IMAGE=$CI_REGISTRY_IMAGE:$CI_COMMIT_SHA" > ./.env_$TYPE - scp ./.env_$TYPE $USER_SSH@$SERVER:$PROJECT_DIR/.env - ssh $USER_SSH@$SERVER -t 'set -e ; cd '$PROJECT_DIR' ; docker-compose up -d --remove-orphans ' only: - master when: manual ## vim: foldmethod=marker:tabstop=2:shiftwidth=2:softtabstop=2

Похожие вопросы

Обсуждают сегодня

Типа вызывать GetParent и проверять на соответствие GetModuleHandle?
The Bird of Hermes
67
Do any of you guys have interesting projects one could join? I'm a Middle Full-Stack developer (JS/TS, React & Node)
Lev Shapiro
40
$res = json_decode($наша строка из респонса); $res1 = array_map(fn($o) => $o->name, $res->breadcrumbs[0]->entities); Как такое будет на Хаскеле?.. В начале весь джейсон, в ко...
Хаскель Моисеевич Гопник
27
В чем сила брат, в NASM или FASM?
Isaac Kleiner
18
Вопрос по диагностике ошибок (я знаю в чем, в данном конкретном примере, я знаю, как исправить, пример модельный, понятно, что в реальности бывает намного запутаннее). module...
ⰄⰎⰋⰐⰐⰑⰛⰤⰧⰧⰩⰄ ⰊⰑⰁⰓⰡⰛⰦⰕⰫ
11
Хтось використовував Vapor на Windows?
Jaroshevskii
15
Тут кста кто-нибудь NeoVim использует?
Simple Sorcerer
13
А чем вам питонисты не угодили?😂
.
79
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
52
у меня вопрос на счет .global <name> для чего это нужно если я пишу на ассемблере? только для того что бы сделать это видимым для линкера? вот что написано в докумментации GA...
Simple Sorcerer
1
Карта сайта