【发布时间】: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