如何在 gitlab-runner 中发布端口?
Posted
技术标签:
【中文标题】如何在 gitlab-runner 中发布端口?【英文标题】:How can I publish a port in a 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 没有发布任何端口一样。
【问题讨论】:
【参考方案1】:目前无法为您提供解决方案,但我可以为您提供帮助。首先请检查正在运行的 docker 容器,看看您的想法是否正确,即端口设置不正确:
[docker inspect [OPTIONS] NAME|ID [NAME|ID...]]
https://docs.docker.com/engine/reference/commandline/inspect/
【讨论】:
以上是关于如何在 gitlab-runner 中发布端口?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 centos 中完全删除/卸载 gitlab-runner
如何让 gitlab-runner 从指定文件中读取而不是 .gitlab-ci.yml?
如何使用包管理器在 Debian 11 上安装 gitlab-runner