【问题标题】:How can I publish a port in a gitlab-runner?如何在 gitlab-runner 中发布端口?
【发布时间】:2020-11-26 07:49:25
【问题描述】:

我想用 gitlab-runner (docker executor) 在我的服务器上部署一个容器,然后从我的本地浏览器获取响应。

我有最简单的启动 nginx 的 dockerfile:

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 中正常工作。

现在,当我推送回购时,所有管道都获得了通过状态,并且每一行都执行得很好,但是当我尝试从本地浏览器使用 url 185.xxx.xx.xx 访问我的容器时我无法得到任何回应。就像 gitlab-runner 没有发布任何端口一样。

【问题讨论】:

    标签: docker nginx docker-compose gitlab gitlab-ci-runner


    【解决方案1】:

    目前无法为您提供解决方案,但我可以为您提供帮助。首先请检查正在运行的 docker 容器,看看您的想法是否正确,即端口设置不正确:

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

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

    【讨论】:

      猜你喜欢
      • 2017-10-28
      • 1970-01-01
      • 2021-12-14
      • 2021-06-27
      • 1970-01-01
      • 2015-06-13
      • 2017-05-24
      • 2019-08-03
      • 2022-06-10
      相关资源
      最近更新 更多