65 lines
2.3 KiB
YAML
65 lines
2.3 KiB
YAML
networks:
|
|
web_net:
|
|
name: web_net
|
|
external: true
|
|
app_net:
|
|
name: app_net
|
|
external: true
|
|
|
|
volumes:
|
|
nexus_data:
|
|
name: nexus_data
|
|
external: false
|
|
|
|
services:
|
|
nexus:
|
|
image: sonatype/nexus3:${nexus_image_tag}
|
|
container_name: nexus
|
|
hostname: nexus
|
|
restart: ${restart_policy}
|
|
mem_limit: ${nexus_mem_limit}
|
|
mem_reservation: ${nexus_mem_reservation}
|
|
environment:
|
|
NEXUS_SECURITY_INITIAL_PASSWORD: ${nexus_admin_pass}
|
|
INSTALL4J_ADD_VM_PARAMS: >-
|
|
-Xms${nexus_heap} -Xmx${nexus_heap}
|
|
-XX:MaxDirectMemorySize=${nexus_direct_mem}
|
|
-XX:+UseG1GC
|
|
-XX:+UseContainerSupport
|
|
-Djava.util.prefs.userRoot=/nexus-data/javaprefs
|
|
volumes:
|
|
- nexus_data:/nexus-data
|
|
networks:
|
|
- web_net
|
|
- app_net
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:8081/service/rest/v1/status"]
|
|
interval: 30s
|
|
retries: 3
|
|
timeout: 10s
|
|
start_period: 90s
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.docker.network=web_net"
|
|
|
|
# --- Web UI / REST API - self-signed, no ACME (internal-only domain) ---
|
|
- "traefik.http.routers.http-repo.rule=Host(`${nexus_main_domain}`)"
|
|
- "traefik.http.routers.http-repo.entrypoints=web"
|
|
- "traefik.http.routers.http-repo.service=repo"
|
|
- "traefik.http.routers.repo.rule=Host(`${nexus_main_domain}`)"
|
|
- "traefik.http.routers.repo.entrypoints=websecure"
|
|
- "traefik.http.routers.repo.tls=true"
|
|
- "traefik.http.routers.repo.service=repo"
|
|
- "traefik.http.services.repo.loadBalancer.server.port=8081"
|
|
|
|
# --- Docker registry group repo (Docker Hub pull-through cache) ---
|
|
# Port created INSIDE Nexus after first boot - see SETUP.md.
|
|
- "traefik.http.routers.http-docker-repo.rule=Host(`${nexus_docker_domain}`)"
|
|
- "traefik.http.routers.http-docker-repo.entrypoints=web"
|
|
- "traefik.http.routers.http-docker-repo.service=docker-repo"
|
|
- "traefik.http.routers.docker-repo.rule=Host(`${nexus_docker_domain}`)"
|
|
- "traefik.http.routers.docker-repo.entrypoints=websecure"
|
|
- "traefik.http.routers.docker-repo.tls=true"
|
|
- "traefik.http.routers.docker-repo.service=docker-repo"
|
|
- "traefik.http.services.docker-repo.loadBalancer.server.port=${nexus_docker_connector_port}"
|