Files
haproxy_internal_docker/docker-compose.yml
Mateusz Gruszczyński 392562e0ea push
2025-09-22 09:21:37 +02:00

45 lines
1.2 KiB
YAML

version: "3.9"
services:
certgen:
image: alpine:3.20
command: >
sh -euc '
mkdir -p /certs;
apk add --no-cache openssl;
[ -f /certs/selfsigned.pem ] || {
openssl req -x509 -nodes -newkey rsa:2048 -days 825 \
-subj "/CN=*.internal" \
-addext "subjectAltName=DNS:*.internal,DNS:hosts.internal,DNS:routerosbackup.internal,DNS:routerosupdate.internal,DNS:sslmonitor.internal" \
-keyout /certs/selfsigned.key -out /certs/selfsigned.crt;
cat /certs/selfsigned.key /certs/selfsigned.crt > /certs/selfsigned.pem;
}
'
volumes:
- ./certs:/certs
networks: [intranet]
haproxy:
image: haproxy:3.2
depends_on: [certgen]
command: >
sh -euc '
for i in $(seq 1 15); do
[ -f /certs/selfsigned.pem ] && break
sleep 1
done
exec haproxy -f /usr/local/etc/haproxy/haproxy.cfg
'
volumes:
- ./haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro
- ./certs:/certs:ro
ports:
- "443:443"
- "80:80"
restart: unless-stopped
networks: [intranet]
networks:
intranet:
external: true