====== Sonatype NEXUS ====== Latest version on dockerhub: [[https://hub.docker.com/r/sonatype/nexus3/tags|sonatype/nexus3]] ===== Issues ===== ===== docker: convert to H2 database ===== Based on advice [[https://github.com/sonatype/nexus-public/issues/451#issuecomment-2295431367|Nexus migration for OrientDB to H2 for 3.70.1-02 fails as nexus-db-migrator is version 3.70.1-03 #451]]: * Update docker image to tag: to 3.70.2. * Create backup task for OrientDB and run it: * Nexus --> create task --> type: ''Admin - Export databases for backup'' * taskname: ''backup'' * backup location: ''/nexus-data/backup'' * shutdown nexus ''docker compose stop'' * edit default command line to start container without running Nexus: services: nexus3: image: sonatype/nexus3:3.70.2 container_name: nexus3 command: "sleep 3600" * Start container ''docker compose up -d'' * Login into container: ''docker-compose exec nexus3 /bin/bash'' * ''cd /nexus-data/backup'' * Check if four backup files exists in ''nexus-data/backup''. Mine was created under subfolder name ''/'' (slash) ???. So I moved it to correct location. * ''curl -s -L -O https://download.sonatype.com/nexus/nxrm3-migrator/nexus-db-migrator-3.70.1-03.jar'' * ''java -Xmx2G -Xms2G -XX:+UseG1GC -XX:MaxDirectMemorySize=28672M -jar nexus-db-migrator-3.70.1-03.jar --migration_type=h2'' * ''cp nexus.mv.db /nexus-data/db'' * ''vi /nexus-data/etc/nexus.properties'' and add/change: ''nexus.datastore.enabled=true'' and save. * exit from container (CTRL+D) * stop container ''docker compose stop'' * remove ''command'' from ''docker-compose.yml'' * run again Nexus 3.70.2: ''docker compose up -d'' * check if H2 database is used: ''docker compose logs | grep H2'' * stop, update Nexus to 3.71.0 and start ==== unknown blob ==== Gitlab Runner cannot get docker image: ''ERROR: Preparation failed: failed to pull image "..." with specified policies [always]: unknown blob (manager.go:205:3s)'' In nexus log, lot of: ''org.sonatype.nexus.repository.docker.internal.V2Exception: authentication required'' In host dockerd log: Jul 19 06:53:49 lxc809 dockerd[303]: time="2021-07-19T06:53:49.863528790Z" level=error msg="Download failed after 1 attempts: unknown blob" Jul 19 06:53:49 lxc809 dockerd[303]: time="2021-07-19T06:53:49.863896588Z" level=error msg="Download failed after 1 attempts: unknown blob" Jul 19 06:53:50 lxc809 dockerd[303]: time="2021-07-19T06:53:50.724398387Z" level=error msg="Download failed after 1 attempts: unknown blob" Jul 19 06:53:50 lxc809 dockerd[303]: time="2021-07-19T06:53:50.724503196Z" level=info msg="Attempting next endpoint for pull after error: unknown blob" **Reason**: Due to bug [[https://issues.sonatype.org/browse/NEXUS-28078|Docker - Delete unused manifests and images task may delete referenced layers if the database query to select components encounters limits]], docker blobs were removed. **Solution**: redeploy image again.