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 🤖