Как я могу опубликовать sh порт в gitlab-runner? - PullRequest
0 голосов
/ 06 августа 2020

Я хочу развернуть контейнер на моем сервере с помощью gitlab-runner (docker Execter), а затем получить ответ от моего локального браузера.

У меня самый простой файл dockerfile, запускающий nginx:

FROM nginx:alpine
COPY /nginx.conf /etc/nginx/conf.d/default.conf
EXPOSE 80

А мой nginx конфиг выглядит так:

server {
    listen 80;
    location / {
        root /usr/share/nginx/html;
        index index.html index.htm;
        try_files $uri $uri/ /index.html =404;
    }

}

Вот мой .gitlab.yml:

image: docker:latest
services: 
  - docker:dind

variables:
  WORK_DIR: ${CI_PROJECT_NAME}
  BRANCH: ${CI_COMMIT_REF_NAME}
  REGISTRY: registry.gitlab.com/myusername/cicdtest

stages:
  - build
  - deploy

build_project:
    stage: build
    script:
        - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
        - docker build -t $REGISTRY .
        - docker push $REGISTRY



deploy_project:
    stage: deploy
    script:
        - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
        - docker pull $REGISTRY
        - docker stop $(docker ps -a -q) || true && docker rm $(docker ps -a -q) || true
        - docker run --name=$BRANCH -p 80:80 -itd $REGISTRY   

И мой config.toml:

[[runners]]
  name = "name1"
  url = "https://gitlab.com/"
  token = "secret"
  executor = "docker"
  [runners.custom_build_dir]
  [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]
  [runners.docker]
    tls_verify = false
    image = "docker:alpine"
    privileged = true
    disable_entrypoint_overwrite = false
    oom_kill_disable = false
    disable_cache = false
    volumes = ["/cache", "/var/run/docker.sock:/var/run/docker.sock"]
    shm_size = 0

Кстати, все с docker и nginx отлично работает на localhost.

Теперь, когда я делаю sh репо, все конвейеры получают пройденный статус и каждый строка выполняется нормально, но когда я пытаюсь получить доступ к своему контейнеру из локального браузера с url 185.xxx.xx.xx , я не могу получить никаких ответов. Это похоже на то, что gitlab-runner не опубликовал sh никаких портов.

1 Ответ

0 голосов
/ 06 августа 2020

Не могу помочь вам с решением прямо сейчас, но я здесь, чтобы помочь. Сначала проверьте работающий контейнер docker и убедитесь, что ваша идея о том, что порты настроены неправильно, верна:

[docker inspect [OPTIONS] NAME|ID [NAME|ID...]]

https://docs.docker.com/engine/reference/commandline/inspect/

...