omnibus-gitlab/letsencrypt-test/docker-compose.yml

59 lines
2.0 KiB
YAML

version: '3'
services:
gitlab:
image: ${IMAGE}
hostname: gitlab.example.com
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'https://gitlab.example.com'
letsencrypt['acme_staging_endpoint'] = 'https://pebble:14000/dir'
letsencrypt['acme_production_endpoint'] = 'https://pebble:14000/dir'
GITLAB_POST_RECONFIGURE_SCRIPT: ${GITLAB_POST_RECONFIGURE_SCRIPT}
volumes:
- type: bind
source: ./pebble-data/pebble.minica.pem # https://github.com/letsencrypt/pebble/blob/master/test/certs/pebble.minica.pem
target: /etc/gitlab/trusted-certs/pebble.minica.pem
ports:
- 8080:80
- 8443:443
networks:
acmenet:
ipv4_address: 10.30.50.10
pebble:
image: letsencrypt/pebble:v2.3.1 # https://hub.docker.com/r/letsencrypt/pebble
hostname: pebble
command: pebble -config /test/config/pebble-config.json -strict false -dnsserver 10.30.50.3:8053
environment:
# TODO(@cpu): Delete this explicit GODEBUG env var once Pebble is built with Go 1.13.x which defaults TLS 1.3 to on
GODEBUG: "tls13=1"
PEBBLE_VA_NOSLEEP: '1' # https://github.com/letsencrypt/pebble#testing-at-full-speed
PEBBLE_WFE_NONCEREJECT: '0' # https://github.com/letsencrypt/pebble#invalid-anti-replay-nonce-errors
volumes:
- type: bind
source: ./pebble-config.json
target: /test/config/pebble-config.json
ports:
- 14000:14000 # HTTPS ACME API
- 15000:15000 # HTTPS Management API
networks:
acmenet:
ipv4_address: 10.30.50.2
challtestsrv: # https://github.com/letsencrypt/pebble/tree/master/cmd/pebble-challtestsrv
image: letsencrypt/pebble-challtestsrv:v2.3.1 # https://hub.docker.com/r/letsencrypt/pebble-challtestsrv
command: pebble-challtestsrv -http01 ":80"
ports:
- 8055:8055 # HTTP Management API
networks:
acmenet:
ipv4_address: 10.30.50.3
networks:
acmenet:
driver: bridge
ipam:
driver: default
config:
- subnet: 10.30.50.0/24