[go: up one dir, main page]

Skip to content

Gitlab + Docker warning: remote HEAD refers to nonexistent ref, unable to checkout.

Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.

Today I migrated from a gitlab omnibus to docker.

When I clone a repo I get the following output

➜ git clone ssh://git@gitlab.example.com:2222/chad_gregory/rpi-manager-v2.git
Cloning into 'rpi-manager-v2'...
remote: Enumerating objects: 314, done.
remote: Counting objects: 100% (314/314), done.
remote: Compressing objects: 100% (159/159), done.
remote: Total 314 (delta 131), reused 314 (delta 131), pack-reused 0
Receiving objects: 100% (314/314), 1.66 MiB | 18.12 MiB/s, done.
Resolving deltas: 100% (131/131), done.
warning: remote HEAD refers to nonexistent ref, unable to checkout.

When I cd into the directory it is empty except the .git folder. Current workaround is to do the following

~/apps 
➜ cd rpi-manager-v2 

rpi-manager-v2 on  master 
➜ ls     

rpi-manager-v2 on  master 
➜ git checkout master
Branch 'master' set up to track remote branch 'master' from 'origin'.
Already on 'master'

rpi-manager-v2 on  master 
➜ ls
app  artisan  bootstrap  composer.json  composer.lock  config  database  package.json  package-lock.json  phpunit.xml  public  README.md  resources  routes  server.php  storage  tailwind.js  tests  webpack.mix.js  yarn.lock

I had checked .git/HEAD and it shows the following

rpi-manager-v2 on  master 
➜ cat .git/HEAD
ref: refs/heads/master

Here is my docker-compose.yml file

networks:
  web:
    external: true

services:
  # The GitLab container itself
  gitlab:
    image: 'gitlab/gitlab-ce:latest'
    restart: always
    hostname: 'gitlab.example.com'
    ports:
      - "2222:22"
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'https://gitlab.example.com'
        nginx['listen_https'] = false
        nginx['listen_port'] = 80
        gitlab_rails['gitlab_shell_ssh_port'] = 2222
        # backup
        gitlab_rails['backup_archive_permissions'] = 0644 # See: https://docs.gitlab.com/ce/raketasks/backup_restore.html#backup-archive-permissions
        gitlab_rails['backup_keep_time'] = 1468800 # 17 days, we'll do a full backup every 5 days
    volumes:
      - './config:/etc/gitlab'
      - './logs:/var/log/gitlab'
      - './data:/var/opt/gitlab'
    networks:
      - default
      - web
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.gitlab.rule=Host(`gitlab.example.com`)"
      - "traefik.http.routers.gitlab.entrypoints=web"
      - "traefik.http.services.gitlab.loadbalancer.server.port=80"
      - "traefik.tcp.routers.gitlab-ssh.rule=HostSNI(`gitlab.example.com`)"
      - "traefik.tcp.routers.gitlab-ssh.entrypoints=ssh"
      - "traefik.tcp.routers.gitlab-ssh.service=gitlab-ssh-svc"
      - "traefik.tcp.services.gitlab-ssh-svc.loadbalancer.server.port=2222"

  gitlab-runner:
    image: gitlab/gitlab-runner:latest
    container_name: gitlab-runner
    volumes:
      - ./volumes/runner/config/:/etc/gitlab-runner:Z
      - /var/run/docker.sock:/var/run/docker.sock
    networks:
      - default

Here is my Traefik docker-compose file

version: '3.3'
  
services:
    traefik:
        image: traefik:v2.5.4
        restart: always
        container_name: traefik
        ports:
            - "80:80"
            - "8080:8080"
        command:
            - --api.dashboard=true # <= Enabling the dashboard
            - --api.debug=true # <= Enable additional endoints for debugging and profiling
            - --log.level=DEBUG # <= Setting level of logging
            - --providers.docker=true # <= Enable docker as a provider
            - --providers.docker.exposedbydefault=false # <= Don't expose every container
            - --providers.docker.network=web # <= Operate on the 'web' network
            - --entrypoints.web.address=:80 # <= Define entrypoint as port :80
            - --entrypoints.ssh.address=:2222
        volumes:
            - /var/run/docker.sock:/var/run/docker.sock # <= Volume for docker admin
        networks:
            - web
        labels:
            - "traefik.enable=true"
            - "traefik.http.routers.api.rule=Host(`traefik.example.com`)"
            - "traefik.http.routers.api.service=api@internal"
networks:
    web:
        external: true
Edited by 🤖 GitLab Bot 🤖