具有docker compose的Jenkins在尝试连接到的docker守护程序套接字时被拒绝unix:///var/run/docker.sock

具有docker compose的Jenkins在尝试连接到的docker守护程序套接字时被拒绝unix:///var/run/docker.sock,docker,jenkins,docker-compose,Docker,Jenkins,Docker Compose,我想在我的vps上设置一些停靠的工具。包括詹金斯和一名代理人。一切正常,但在jenkins中使用docker代理时,我遇到以下错误: + docker build -t 286802dd81862d714cfc6a90c84d30200546eaa9 -f Dockerfile . Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: P

我想在我的vps上设置一些停靠的工具。包括詹金斯和一名代理人。一切正常,但在jenkins中使用docker代理时,我遇到以下错误:

+ docker build -t 286802dd81862d714cfc6a90c84d30200546eaa9 -f Dockerfile .

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.39/build?buildargs=%7B%7D&cachefrom=%5B%5D&cgroupparent=&cpuperiod=0&cpuquota=0&cpusetcpus=&cpusetmems=&cpushares=0&dockerfile=Dockerfile&labels=%7B%7D&memory=0&memswap=0&networkmode=default&rm=1&session=srtihghhshf8z9c2lkdnvr8dm&shmsize=0&t=286802dd81862d714cfc6a90c84d30200546eaa9&target=&ulimits=null&version=1: dial unix /var/run/docker.sock: connect: permission denied

script returned exit code 1
下面是我的docker compose的外观:


services:

  proxy:
    image: jwilder/nginx-proxy
    networks:
      - mynetwork
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /var/run/docker.sock:/tmp/docker.sock:ro
    restart: always

  mariadb:
    image: bitnami/mariadb:latest
    ...

  phpmyadmin:
    image: phpmyadmin/phpmyadmin:latest
    ...

  jenkins:
    image: jenkinsci/blueocean:latest
    networks:
      - mynetwork
    environment:
      - VIRTUAL_HOST=jenkins.mydomain.com
      - VIRTUAL_PORT=8080
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./jenkins-data:/var/jenkins_home
      - ./jenkins-docker-certs:/certs/client:ro
      - ./jenkins-home:/home
    restart: always

networks:
  mynetwork:
    driver: bridge
我的撰写文件中是否缺少某些内容


到目前为止,我已经尝试将jenkins用户添加到正在运行的docker实例的docker和root组中,但没有成功。

我找到了一种解决方法。我只是在docker-compose.yml中指定了root用户,如下所示:

  jenkins:
    image: jenkinsci/blueocean:latest
    user: root
    networks:
      - mynetwork
    environment:
      - VIRTUAL_HOST=jenkins.mydomain.com
      - VIRTUAL_PORT=8080
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./jenkins-data:/var/jenkins_home
      - ./jenkins-docker-certs:/certs/client:ro
      - ./jenkins-home:/home
    restart: always