Compare commits
14 Commits
d8bfde5796
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| d793a800ae | |||
| d53aab56df | |||
| 7ead84ba6b | |||
| 644ee7b262 | |||
| b23846cbcf | |||
| fbd72c7748 | |||
| 893f5b50ef | |||
| c364c6da30 | |||
| 36c854bdf9 | |||
| 85ffa579e4 | |||
| 5fbbd16462 | |||
| 8e8489060c | |||
| 9dc42de818 | |||
| fa2df647c6 |
20
.gitignore
vendored
Normal file
20
.gitignore
vendored
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
# Runtime data
|
||||||
|
data/
|
||||||
|
certs/
|
||||||
|
|
||||||
|
# Environment files
|
||||||
|
.env
|
||||||
|
|
||||||
|
# OS files
|
||||||
|
.DS_Store
|
||||||
|
Thumbs.db
|
||||||
|
|
||||||
|
# Editor directories and files
|
||||||
|
.idea
|
||||||
|
.vscode
|
||||||
|
*.swp
|
||||||
|
*.swo
|
||||||
|
|
||||||
|
# Logs
|
||||||
|
*.log
|
||||||
|
logs/
|
||||||
18
Dockerfile
18
Dockerfile
@@ -1,16 +1,10 @@
|
|||||||
FROM registry:2
|
FROM registry:2
|
||||||
|
|
||||||
# Install Apache utilities for htpasswd management
|
# Use Alpine's apk package manager to install apache2-utils
|
||||||
RUN apt-get update && apt-get install -y \
|
RUN apk --no-cache add apache2-utils
|
||||||
apache2-utils \
|
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
# Create auth directory
|
# Create config directory
|
||||||
RUN mkdir -p /etc/docker/registry/auth
|
RUN mkdir -p /etc/docker/registry
|
||||||
|
|
||||||
# Copy custom entrypoint script
|
# Create config file with proper YAML formatting
|
||||||
COPY entrypoint.sh /usr/local/bin/
|
RUN printf "version: 0.1\nstorage:\n filesystem:\n rootdirectory: /var/lib/registry\nhttp:\n addr: :5000\n" > /etc/docker/registry/config.yml
|
||||||
RUN chmod +x /usr/local/bin/entrypoint.sh
|
|
||||||
|
|
||||||
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
|
|
||||||
CMD ["/etc/docker/registry/config.yml"]
|
|
||||||
@@ -11,10 +11,6 @@ http:
|
|||||||
addr: :5000
|
addr: :5000
|
||||||
headers:
|
headers:
|
||||||
X-Content-Type-Options: [nosniff]
|
X-Content-Type-Options: [nosniff]
|
||||||
auth:
|
|
||||||
htpasswd:
|
|
||||||
realm: basic-realm
|
|
||||||
path: /etc/docker/registry/auth/htpasswd
|
|
||||||
health:
|
health:
|
||||||
storagedriver:
|
storagedriver:
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|||||||
@@ -9,33 +9,9 @@ services:
|
|||||||
- "5000"
|
- "5000"
|
||||||
volumes:
|
volumes:
|
||||||
- registry-data:/var/lib/registry
|
- registry-data:/var/lib/registry
|
||||||
- registry-auth:/etc/docker/registry/auth
|
|
||||||
- ./config.yml:/etc/docker/registry/config.yml
|
|
||||||
networks:
|
|
||||||
- registry-network
|
|
||||||
|
|
||||||
registry-ui:
|
|
||||||
image: joxit/docker-registry-ui:latest
|
|
||||||
container_name: registry-ui
|
|
||||||
restart: unless-stopped
|
|
||||||
expose:
|
|
||||||
- "80"
|
|
||||||
environment:
|
|
||||||
- SINGLE_REGISTRY=${SINGLE_REGISTRY:-true}
|
|
||||||
- REGISTRY_TITLE=${REGISTRY_TITLE:-Docker Registry}
|
|
||||||
- DELETE_IMAGES=${DELETE_IMAGES:-true}
|
|
||||||
- SHOW_CONTENT_DIGEST=${SHOW_CONTENT_DIGEST:-true}
|
|
||||||
- NGINX_PROXY_PASS_URL=${REGISTRY_URL:-http://registry:5000}
|
|
||||||
- SHOW_CATALOG_NB_TAGS=${SHOW_CATALOG_NB_TAGS:-true}
|
|
||||||
- CATALOG_MIN_BRANCHES=${CATALOG_MIN_BRANCHES:-1}
|
|
||||||
- CATALOG_MAX_BRANCHES=${CATALOG_MAX_BRANCHES:-1}
|
|
||||||
- TAGLIST_PAGE_SIZE=${TAGLIST_PAGE_SIZE:-100}
|
|
||||||
- REGISTRY_SECURED=${REGISTRY_SECURED:-true}
|
|
||||||
- CATALOG_ELEMENTS_LIMIT=${CATALOG_ELEMENTS_LIMIT:-1000}
|
|
||||||
depends_on:
|
|
||||||
- registry
|
|
||||||
networks:
|
networks:
|
||||||
- registry-network
|
- registry-network
|
||||||
|
command: ["/etc/docker/registry/config.yml"]
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
registry-network:
|
registry-network:
|
||||||
@@ -44,5 +20,3 @@ networks:
|
|||||||
volumes:
|
volumes:
|
||||||
registry-data:
|
registry-data:
|
||||||
driver: local
|
driver: local
|
||||||
registry-auth:
|
|
||||||
driver: local
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# Initialize auth file if it doesn't exist
|
|
||||||
if [ ! -f /etc/docker/registry/auth/htpasswd ]; then
|
|
||||||
echo "Initializing auth file with default user 'recruas'"
|
|
||||||
htpasswd -B -c /etc/docker/registry/auth/htpasswd recruas
|
|
||||||
echo "Auth file created. Default user: recruas"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Start the registry
|
|
||||||
exec /bin/registry /etc/docker/registry/config.yml "$@"
|
|
||||||
9
env.example
Normal file
9
env.example
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
# Registry Configuration
|
||||||
|
REGISTRY_STORAGE_PATH=/var/lib/registry
|
||||||
|
|
||||||
|
# Expose settings
|
||||||
|
REGISTRY_PORT=5000
|
||||||
|
|
||||||
|
# Optional SSL Configuration
|
||||||
|
# SSL_CERT_PATH=./certs/domain.crt
|
||||||
|
# SSL_KEY_PATH=./certs/domain.key
|
||||||
22
setup.sh
22
setup.sh
@@ -1,22 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
echo "Setting up Docker Registry with authentication..."
|
|
||||||
|
|
||||||
# Build and start the registry
|
|
||||||
docker-compose up -d --build
|
|
||||||
|
|
||||||
echo "Waiting for registry to start..."
|
|
||||||
sleep 5
|
|
||||||
|
|
||||||
# Set initial password for recruas user
|
|
||||||
echo "Setting password for 'recruas' user..."
|
|
||||||
docker exec -it registry htpasswd -B /etc/docker/registry/auth/htpasswd recruas
|
|
||||||
|
|
||||||
echo "Setup complete!"
|
|
||||||
echo "Registry is running with authentication enabled."
|
|
||||||
echo "Default user: recruas"
|
|
||||||
echo "UI will be available on port 80 (exposed)"
|
|
||||||
echo "Registry API available on port 5000 (exposed)"
|
|
||||||
echo ""
|
|
||||||
echo "To change password later:"
|
|
||||||
echo "docker exec -it registry htpasswd -B /etc/docker/registry/auth/htpasswd recruas"
|
|
||||||
Reference in New Issue
Block a user