-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdocker-compose.yaml
More file actions
62 lines (59 loc) · 1.69 KB
/
Copy pathdocker-compose.yaml
File metadata and controls
62 lines (59 loc) · 1.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
networks:
acme-test:
name: acme-test
driver: bridge
ipam:
config:
- subnet: 172.21.0.0/16
services:
http-01-responder:
image: erlang:27
container_name: acme-http-01-responder
tty: true
networks:
acme-test:
aliases:
- "a.local.net"
- "b.local.net"
- "xn--ojq.local.net" # 甲
- "xn--tny.local.net" # 乙
ports:
- "5002:5002"
volumes:
- ./:/src
command: bash -c 'cp /src/test/acme_client_challenge_responder.erl ./; erlc acme_client_challenge_responder.erl; erl -eval "acme_client_challenge_responder:start([])."'
restart: unless-stopped
dns-01-responder:
image: python:3.11-slim
container_name: acme-dns-01-responder
tty: true
networks:
acme-test:
ipv4_address: 172.21.0.10 # Fixed IP for DNS server
ports:
- "8053:8053" # HTTP API port (for test setup from host)
volumes:
- ./:/src
command: python3 /src/examples/acme_client_dns_responder.py
restart: unless-stopped
# Note: DNS port 53 is only accessible within Docker network for Pebble
# HTTP API port 8053 is exposed for test setup from host
pebble:
image: ghcr.io/letsencrypt/pebble:latest
container_name: acme-server
depends_on:
- http-01-responder
- dns-01-responder
environment:
- PEBBLE_VA_ALWAYS_VALID=0
- PEBBLE_VA_NOSLEEP=1
- PEBBLE_WFE_NONCEREJECT=0
- PEBBLE_VA_DNS=172.21.0.10:53
dns:
- 172.21.0.10 # Use our DNS server as the container's DNS resolver
networks:
acme-test:
ports:
- "14000:14000" # Pebble ACME endpoint
- "15000:15000" # Management API
restart: unless-stopped