docker容器部署gitlab的runner的shell模式注册下job中无法使用docker指令

引言

现需通过gitlab-runner来构建jar部署的镜像,发现在job中无法使用docker指令,解决的过程中出现一系列异常,在此做个问题解决的记录。

内容

通过docker-compose部署

name: java-env
services:
  env-gitlab-runner:
    restart: always
    image: env/gitlab-runner-java:latest
    container_name: env-gitlab-runner-java
    build:
      context: ./runner/environment
      dockerfile: dockerfile
    privileged: true
    user: "root"
    volumes:
      - ./runner/config:/etc/gitlab-runner
      - /var/run/docker.sock:/var/run/docker.sock
      - ./gitlab-runner:/home/gitlab-runner
    environment:
      TZ: "Asia/Shanghai"
    networks:
      - env-network

  #############################网络#############################
networks:
  env-network:
    name: env_network
    external: true

部署完成后选择shell模式注册,在其job中无法使用docker指令
因为在job中脚本时在gitlab-runner用户下运行的所以需要把gitlab-runner添加到docker用户组,以及把/var/run/docker.sock文件添加到docker用户组。
相关异常信息

root@fewwwcee16:/# sudo -u gitlab-runner docker ps
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get “http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json”: dial unix /var/run/docker.sock: connect: permission denied

  • 测试gitlab-runner用户是否可以使用docker指令
sudo -u gitlab-runner docker ps
  • 添加gitlab-runner用户到docker用户组
sudo usermod -aG docker 用户名

刷新用户组成员信息

newgrp docker
  • /var/run/docker.sock文件添加到docker用户组
chown root:docker /var/run/docker.sock

其他问题处理

  • 问题1 gitlab-runner容器中默认一些指令是不存在的,其容器系统为Ubuntu
apt update
apt install -y sudo vim 
  • 问题2 docker指令未加入全局环境变量,除其所属root用户外其他用户无法直接使用其指令,将其加入到环境变量中。
export PATH=$PATH:/usr/local/bin

相关推荐

  1. docker安装gitlab-runner

    2024-04-03 06:52:04       49 阅读
  2. docker部署服务无法自动注册xxl-job问题排查和解决

    2024-04-03 06:52:04       39 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-03 06:52:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-03 06:52:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-03 06:52:04       82 阅读
  4. Python语言-面向对象

    2024-04-03 06:52:04       91 阅读

热门阅读

  1. 自动化标准Makefile与lds

    2024-04-03 06:52:04       39 阅读
  2. ActiViz中的数据集vtkPolyData

    2024-04-03 06:52:04       48 阅读
  3. 数据库设计规范(三大范式)

    2024-04-03 06:52:04       40 阅读
  4. 第八章:k8s如何使用 Service 暴露你的应用

    2024-04-03 06:52:04       36 阅读
  5. 【Vue】创建vue3项目

    2024-04-03 06:52:04       44 阅读