首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gitlab-CE docker构建失败“未知指令”

Gitlab-CE docker构建失败“未知指令”
EN

Stack Overflow用户
提问于 2018-04-10 01:58:11
回答 2查看 901关注 0票数 0

我使用的是自托管Gitlab-CE服务器。我尝试使用包含三个阶段的CI Pipeline :构建、打包、部署

构建是一项很棒的任务--它是可行的。

在打包任务中,我尝试构建docker容器。但此步骤失败,并显示以下错误:

代码语言:javascript
复制
Error response from daemon: Dockerfile parse error line 1: unknown instruction: <!DOCTYPE

这是我的.gitlab-ci.yml (没有部署步骤)

代码语言:javascript
复制
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的,它通过用户名和密码进行保护。

我的配置出了什么问题?

EN

回答 2

Stack Overflow用户

发布于 2018-04-10 04:11:47

您应该检查/etc/gitlab/gitlab.rb文件并搜索registry_external_url配置变量。您可能希望为GitLab注册表使用子域,或者在不同的端口上运行它。

代码语言:javascript
复制
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

票数 0
EN

Stack Overflow用户

发布于 2018-04-16 20:01:35

也许可以试试这样的东西:

代码语言:javascript
复制
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-discovery
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49738929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档