代码上传后,runner中构建,docker推送镜像到阿里云镜像仓库,前提要在阿里云产品开通阿里云镜像仓库服务

Dockerfile,我放在项目src/docker/目录下

FROM openjdk:8-jre
MAINTAINER dlh 2694116027@qq.com
COPY target/*.jar /app.jar
EXPOSE 8001
ENTRYPOINT ["java","-jar","/app.jar"]

.gitlab-ci.yml,放在项目根目录下
这个stages创建的时候,选择脚本类型为shell

stages:
  - test1

docker-deploy:
  stage: test1

  # 执行Job内容
  script:
    - echo "runnering..."
    - mvn clean package -DskipTests
    - docker build -t app:test6 -f src/docker/Dockerfile .
    - echo "build success"
    - docker images
    - docker login -u 账号 -p 密码  registry-vpc.cn-beijing.aliyuncs.com
    - docker tag app:test6  registry-vpc.cn-beijing.aliyuncs.com/app_dev/app:6.0
    - docker push  registry-vpc.cn-beijing.aliyuncs.com/app_dev/app:6.0
    - docker rmi  registry-vpc.cn-beijing.aliyuncs.com/app_dev/app:6.0
    - docker rmi app:test6
  tags:
    # 执行Job的服务器
    - runner1.tag

  only:
    # 只有在master分支才会执行
    - master

之前的博客里有搭建gitlab runner,和注册runner
地址: https://blog.csdn.net/bpqdwo/article/details/93713012

问题

1、服务器拒绝推送请求

The push refers to repository [registry-vpc.cn-beijing.aliyuncs.com/app_dev/app]
f2351432cf49: Preparing
325ca4da255c: Preparing
6375dbe2bbf8: Preparing
79be3cf498b1: Preparing
7b76d801397d: Preparing
f32868cde90b: Preparing
0db06dff9d9a: Preparing
f32868cde90b: Waiting
0db06dff9d9a: Waiting
denied: requested access to the resource is denied

gitlab-runner里需要登录

docker login -u 账号 -p 密码  registry-vpc.cn-beijing.aliyuncs.com

2、docker命令找不到

docker: command not found

在编写gitlab-runner的docker-compose.yml时候
加上 挂载宿主机docker命令
 privileged: true
    volumes:
      # 映射docker命令
      - /var/run/docker.sock:/var/run/docker.sock
      - /bin/docker:/bin/docker

3、docker容器内执行docker命令提示Got permission denied while trying to connect to the Docker

没有权限执行docker命令,请看博客 https://blog.csdn.net/bpqdwo/article/details/93714482

4、maven命令找不到

mvn: command not found

如果是看我之前的博客安装的gitlab-runner

查询正在运行的容器
docker ps
进入到容器里
docker exec -it 0be3ea7795b1 bash
设置maven变量到系统配置
vi /etc/profile
加上
export PATH=$PATH:$MAVEN_HOME/bin
然后 source /etc/profile

如果不是,进入容器检查安装maven了吗,如果没有安装,安装一个maven就可以了

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐