我使用的是自托管Gitlab-CE服务器。我尝试使用包含三个阶段的CI Pipeline :构建、打包、部署
构建是一项很棒的任务--它是可行的。
在打包任务中,我尝试构建docker容器。但此步骤失败,并显示以下错误:
Error response from daemon: Dockerfile parse error line 1: unknown instruction: <!DOCTYPE这是我的.gitlab-ci.yml (没有部署步骤)
image: docker:latest
services:
- docker:dind
variables:
SPRING_PROFILES_ACTIVE: gitlab-ci
stages:
- build
- package
- deploy
maven-build:
image: maven:3-jdk-8
stage: build
script: "mvn package -B"
artifacts:
paths:
- target/*.jar
docker-build:
stage: package
script:
- docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN https://devel.priv.net
- docker build -t https://devel.priv.net/d.p/service-discovery
- docker push https://devel.priv.net/d.p/service-discovery可以通过https://devel.priv.net访问gitlab服务器。存储库是https://devel.priv.net/d.p/service-discovery的,它通过用户名和密码进行保护。
我的配置出了什么问题?
发布于 2018-04-10 04:11:47
您应该检查/etc/gitlab/gitlab.rb文件并搜索registry_external_url配置变量。您可能希望为GitLab注册表使用子域,或者在不同的端口上运行它。
registry_external_url "https://registry.devel.priv.net"你得到的响应似乎是gilab404页面的HTML代码,因为注册表没有在你的域https://devel.priv.net上运行,但是docker login试图登录这个url。
还应尽量避免将注册表硬连接到.gitlab-ci.yml文件中,并在docker-build作业中使用CI环境变量$CI_REGISTRY。
发布于 2018-04-16 20:01:35
也许可以试试这样的东西:
docker-build:
stage: package
script:
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
- docker build -t devel.priv.net/d.p/service-discovery .
- docker push devel.priv.net/d.p/service-discoveryhttps://stackoverflow.com/questions/49738929
复制相似问题