Sign inSign up

ikus060/nexus3

By ikus060

•Updated about 1 month ago

Nexus3 with enhanced APT Repository Support

Image
0

1.3K

ikus060/nexus3 repository overview

⁠Nexus3 (Patched) — Enhanced APT Repository Support

Docker Pulls Docker Image Size

A drop-in replacement for the official sonatype/nexus3⁠ image, built on top of the upstream codebase with additional patches for improved APT repository support that are not (yet) available upstream.

This image is intended for users who rely on Nexus Repository's apt format and need features currently pending review in the official Sonatype repository.

ā šŸ”§ What's Different From the Official Image

This image applies the following patch on top of the stock sonatype/nexus-public source:

⁠APT: Distribution and component metadata on upload

PR sonatype/nexus-public#1038⁠

This patch (by Patrik Dufresne⁠) adds:

  • Distribution and component metadata on upload, allowing packages to be published with explicit distribution and component values instead of relying solely on repository-level defaults.
  • Updated metadata generation, package indexing, and stale metadata cleanup logic to correctly support multi-distribution and multi-component APT repositories.
  • Corresponding upload form/UI updates reflecting the new upload options.
  • xz compression support for generated Packages index files in hosted APT repositories, in addition to the existing gzip/bzip2 support.

This addresses long-standing community requests, including:

āš ļø Note: This is a community-contributed patch that has not been merged into upstream Nexus Repository OSS as of the image build date. It is applied here on a best-effort basis to make the functionality available to users who need it now. Behavior may change if/when the upstream PR evolves or is merged/rejected.

⁠🐳 Usage

This image is a drop-in replacement — usage is identical to the official image.

docker run -d -p 8081:8081 --name nexus \
  -v nexus-data:/nexus-data \
  ikus060/nexus3:3.94.1
⁠Docker Compose
version: "3.8"
services:
  nexus:
    image: ikus060/nexus3:3.94.1
    container_name: nexus
    ports:
      - "8081:8081"
    volumes:
      - nexus-data:/nexus-data
    restart: unless-stopped

volumes:
  nexus-data:

Default credentials, ports, and data directory conventions match the official image. See the official Sonatype documentation⁠ for general configuration guidance.

ā šŸ·ļø Available Tags

TagDescription
3.94.1Patched build based on Nexus 3.94.1 with APT xz/multi-distribution support
3.94.1-<commithash>Patched build based on Nexus 3.94.1 with APT xz/multi-distribution support, tied to a specific commit

Check the Tags tab on Docker Hub for the full list of available versions.

ā šŸ› ļø Build Details

This image is built by:

  1. Starting from the official Nexus Repository OSS source at a given release tag.
  2. Applying the patch from sonatype/nexus-public#1038⁠.
  3. Building and packaging the result into a container image compatible with the official sonatype/nexus3 runtime layout.

Dockerfile and build scripts are available in the source repository: šŸ‘‰ Gitlab Repository⁠

ā āš ļø Disclaimer

  • This is an unofficial, community-maintained image and is not affiliated with or endorsed by Sonatype.
  • Patches applied are sourced from open, publicly submitted pull requests to sonatype/nexus-public and may not follow the same QA/release process as official Sonatype builds.
  • Use in production at your own discretion. Always test upgrades in a staging environment first.
  • If/when the upstream PR is merged into an official Nexus release, this image will be deprecated in favor of the official one.

ā šŸ“„ License

Nexus Repository OSS is licensed under the Eclipse Public License. This image redistributes a modified build of that codebase; see the upstream project license⁠ for details.

ā šŸ™ Credits

⁠APT Usage

Here a screenshot of the modified upload form where user could define the distribution and the component explicitly.

Upload form with distribution/component fields

Alternatively, you may also define the distribution and component when uploading the packages:

curl -u username:password \
  -H "Content-Type: multipart/form-data" \
  --data-binary @./package_1.0_amd64.deb \
  "http://your-nexus-server:8081/repository/your-apt-repo-name/?distribution=trixie,forky&component=non-free"

It's also possible to do the same using the REST API:

curl -u username:password \
  -X POST \
  "http://your-nexus-server:8081/service/rest/v1/components?repository=your-apt-repo-name" \
  -F "apt.asset=@/path/to/package_1.0_amd64.deb;type=application/x-debian-package"
  -F "apt.asset.distribution=trixie,forky"
  -F "apt.asset.component=non-free"

Tag summary

Content type

Image

Digest

sha256:5c20fde93…

Size

789.3 MB

Last updated

about 1 month ago

docker pull ikus060/nexus3:3.94.1