Description
Description
I'm trying to use Gitea to host a few code repos and the docker images build from them. Migrating the git repos to Gitea was easy and no problem, but most times I cant seem to push docker images. In some cases it succeeds, in others (and most of the cases) it fails with "error from registry: unknown". My images are quite simple and are single architecture. I tried adding "--provenance=false" to the docker build as I've read that somewhere in the issues, but it does not make a difference. It looks like this:
docker push devops.haarhoff.eu/haarhoff/freddiecard:0.4.17
The push refers to repository [devops.haarhoff.eu/haarhoff/freddiecard]
3720fbd9f073: Layer already exists
722fd60a3029: Layer already exists
1b2ead6cb8df: Layer already exists
63b8e2b4e5f9: Layer already exists
fd4a6745bcb4: Layer already exists
4f4fb700ef54: Layer already exists
ca7817a71dee: Pushed
232b4483dd99: Layer already exists
error from registry: unknown
unknown
I'm using a personal access token for logging into docker, and to be on the safe side I selected all available permissions when creating the token. I can see this line multiple times in the logs:
/v2/token for 172.30.0.1:0, 404 Not Found in 0.0ms @ container/container.go:187(container.AuthenticateNotImplemented)
which seems odd.
Gitea Version
docker.gitea.com/gitea:1.23.8-rootless
Can you reproduce the bug on the Gitea demo site?
No
Log Gist
https://gist.github.com/haarhoff-frs/221969e6f061398ec81cb203ec513ec9
Screenshots
No response
Git Version
2.34.1 on docker host
Operating System
Docker on Ubuntu 22.04
How are you running Gitea?
I'm using Gitea in with docker compose behind an NGINX Proxy Manager. My first try was to connect to the instance via a Cloudflare Tunnel, but in trying to fix the problem with pushing I switched to NPM over a Tailscale connection. Unfortunately I cannot add a public hostname to that server easily, so I had to go the route over Cloudflare/Tailscale.
The NGINX reverse proxy is configured as described in the documentation.
This is my app.ini:
APP_NAME = Haarhoff
RUN_USER = git
RUN_MODE = prod
WORK_PATH = /var/lib/gitea
[repository]
ROOT = /var/lib/gitea/git/repositories
[repository.local]
LOCAL_COPY_PATH = /tmp/gitea/local-repo
[repository.upload]
TEMP_PATH = /tmp/gitea/uploads
[server]
APP_DATA_PATH = /var/lib/gitea
SSH_DOMAIN = devops.haarhoff.eu
HTTP_PORT = 3000
ROOT_URL = https://devops.haarhoff.eu/
DISABLE_SSH = false
; In rootless gitea container only internal ssh server is supported
START_SSH_SERVER = true
SSH_PORT = 2222
SSH_LISTEN_PORT = 2222
BUILTIN_SSH_SERVER_USER = git
LFS_START_SERVER = true
DOMAIN = devops.haarhoff.eu
LFS_JWT_SECRET = XXXXX
OFFLINE_MODE = true
[database]
PATH = /var/lib/gitea/data/gitea.db
DB_TYPE = postgres
HOST = postgresql-db-1:5432
NAME = gitea
USER = gitea
PASSWD = XXXXX
SCHEMA =
SSL_MODE = disable
LOG_SQL = false
[session]
PROVIDER_CONFIG = /var/lib/gitea/data/sessions
PROVIDER = file
[picture]
AVATAR_UPLOAD_PATH = /var/lib/gitea/data/avatars
REPOSITORY_AVATAR_UPLOAD_PATH = /var/lib/gitea/data/repo-avatars
[attachment]
PATH = /var/lib/gitea/data/attachments
[log]
ROOT_PATH = /var/lib/gitea/data/log
MODE = console
LEVEL = info
[security]
INSTALL_LOCK = true
SECRET_KEY =
REVERSE_PROXY_LIMIT = 1
REVERSE_PROXY_TRUSTED_PROXIES = *
INTERNAL_TOKEN = XXXXX
PASSWORD_HASH_ALGO = pbkdf2
[service]
DISABLE_REGISTRATION = true
REQUIRE_SIGNIN_VIEW = true
REGISTER_EMAIL_CONFIRM = false
ENABLE_NOTIFY_MAIL = false
ALLOW_ONLY_EXTERNAL_REGISTRATION = false
ENABLE_CAPTCHA = false
DEFAULT_KEEP_EMAIL_PRIVATE = false
DEFAULT_ALLOW_CREATE_ORGANIZATION = true
DEFAULT_ENABLE_TIMETRACKING = true
NO_REPLY_ADDRESS = noreply.haarhoff.eu
[lfs]
PATH = /var/lib/gitea/git/lfs
[mailer]
ENABLED = true
SMTP_ADDR = mailer.haarhoff.eu
SMTP_PORT = 2525
FROM = [email protected]
USER = haarhoff/haarhoff
PASSWD = XXXXX
[openid]
ENABLE_OPENID_SIGNIN = true
ENABLE_OPENID_SIGNUP = false
[cron.update_checker]
ENABLED = false
[repository.pull-request]
DEFAULT_MERGE_STYLE = merge
[repository.signing]
DEFAULT_TRUST_MODEL = committer
[oauth2]
JWT_SECRET = XXXX
Database
PostgreSQL