问题描述
该笔记将记录:通过 Docker Compose 部署 Nexus 3.33.0 版本的方法,以及相关问题的解决办法。
解决方案
第一步、编写 Docker Compose 文件
version: "3" services: package-repository: image: sonatype/nexus3:3.33.0 container_name: package-repository restart: always volumes: - "/srv/hdd/package-repository/nexus-data:/nexus-data" ports: - "50362:8081"
第二步、启动服务并测试
# 根据文档,nexus-data,会被 UID=200 的进程 Nexus 写入数据,所以: mkdir -pv /srv/hdd/package-repository/nexus-data chown 200 /srv/hdd/package-repository/nexus-data # 启动服务 docker-compose up -d # 查看运行日志: docker-compose logs -f
第三步、配置 Nginx 代理
server { listen *:443; server_name repo.example.com; # allow large uploads of files client_max_body_size 1G; # optimize downloading files larger than 1G #proxy_max_temp_file_size 2G; ssl on; ssl_certificate example.pem; ssl_certificate_key example.key; location / { # Use IPv4 upstream address instead of DNS name to avoid attempts by nginx to use IPv6 DNS lookup proxy_pass http://127.0.0.1:8081/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto "https"; } }
参考文献
sonatype/nexus3 – Docker Image | Docker Hub
Run Behind a Reverse Proxy