Java GitLab CI docker生成-docker:未找到-退出代码127
我正在尝试为一个简单的java/maven项目创建一个CI/CD管道。 我使用的跑步者是docker跑步者。Java GitLab CI docker生成-docker:未找到-退出代码127,java,docker,maven,dockerfile,gitlab-ci,Java,Docker,Maven,Dockerfile,Gitlab Ci,我正在尝试为一个简单的java/maven项目创建一个CI/CD管道。 我使用的跑步者是docker跑步者。 我正在使用dockerfile创建一个安装maven/java/等的容器。。在这个容器中,程序应该被测试 很抱歉提出这个问题,但我不熟悉GitLab中的CI/CD管道 GitHub工作正常,请看: 多谢各位 以下是CI日志 。。。 执行作业脚本的“步骤脚本”阶段 $docker build--build arg JAVA_VERSION=openjdk7 /bin/sh:eval:第9
我正在使用
dockerfile
创建一个安装maven/java/等的容器。。在这个容器中,程序应该被测试
很抱歉提出这个问题,但我不熟悉GitLab中的CI/CD管道
GitHub工作正常,请看:
多谢各位
以下是CI日志
。。。
执行作业脚本的“步骤脚本”阶段
$docker build--build arg JAVA_VERSION=openjdk7
/bin/sh:eval:第95行:docker:未找到
清理基于文件的变量
错误:作业失败:退出代码127
这就是
.gitlab ci.yml
stages:
- java7
# - java11
# - deploy
java7:
stage: java7
script:
- docker build --build-arg JAVA_VERSION=openjdk7
# tags:
# - docker
#java11:
# stage: java11
# script:
# - docker build --build-arg JAVA_VERSION=openjdk11
# tags:
# - docker
这是
dockerfile
# Pull base image.
FROM alpine as build
ARG MAVEN_VERSION=3.6.1
ARG USER_HOME_DIR="/root"
ARG JAVA_VERSION=openjdk7
ARG BASE_URL=https://apache.osuosl.org/maven/maven-3/${MAVEN_VERSION}/binaries
ENV HTTP_PROXY=#comment
ENV HTTPS_PROXY=#comment
# Install Java.
RUN apk --update --no-cache add JAVA_VERSION curl
RUN mkdir -p /usr/share/maven /usr/share/maven/ref \
&& curl -fsSL -o /tmp/apache-maven.tar.gz ${BASE_URL}/apache-maven-${MAVEN_VERSION}-bin.tar.gz \
&& tar -xzf /tmp/apache-maven.tar.gz -C /usr/share/maven --strip-components=1 \
&& rm -f /tmp/apache-maven.tar.gz \
&& ln -s /usr/share/maven/bin/mvn /usr/bin/mvn
ENV MAVEN_HOME /usr/share/maven
ENV MAVEN_CONFIG "$USER_HOME_DIR/.m2"
# Define working directory.
WORKDIR /data
# Define commonly used JAVA_HOME variable
ENV JAVA_HOME /usr/lib/jvm/default-jvm/
# Define default command.
CMD ["mvn", "--version"]
使用Dockerexecutor运行管道意味着作业将在Docker容器中运行,但不能执行
Docker
命令
如果需要在GitLab CI作业中运行docker
命令(阅读“在容器中”),则需要在docker中运行docker(通常缩写为DinD)。这本身就是一个庞大的主题,但您可以从GitLab CI的文档开始:
我总是使用DinD,并且在我的gitlab ci.yml中有一个最小的设置 使用图像作为默认设置:
图片:docker:19.03.13
为TLS证书定义默认变量:
变量:
DOCKER\u TLS\u CERTDIR:“/certs”
然后使用docker映像作为服务来启用DinD:
服务:
-姓名:docker:19.03.13-dind
别名:docker
我在GitLab CI上写了关于在Docker中使用Docker的文章,您可能会发现这很有用,但我仍然建议您在阅读GitLab的文档之前先广泛阅读它们