170 lines
4.6 KiB
YAML
170 lines
4.6 KiB
YAML
version: '3'
|
|
services:
|
|
boulder:
|
|
# CAUTION: Changing the Go version in this tag changes the version of Go
|
|
# used for release builds. make-deb.sh relies on being able to parse the
|
|
# numeric version between 'go' and the underscore-prefixed date. If you make
|
|
# changes to these tokens, please update this parsing logic.
|
|
image: &boulder_image letsencrypt/boulder-tools:${BOULDER_TOOLS_TAG:-go1.17.7_2022-02-10}
|
|
environment:
|
|
FAKE_DNS: 10.77.77.77
|
|
BOULDER_CONFIG_DIR: test/config
|
|
GOFLAGS: -mod=vendor
|
|
# Go 1.18 turns off SHA-1 validation on CSRs (and certs, but that doesn't
|
|
# affect us). It also turns off TLS 1.0 and TLS 1.1. Temporarily go back
|
|
# to allowing these so we can upgrade to Go 1.18 while doing a deprecation
|
|
# window. These overrides will stop working in Go 1.19.
|
|
GODEBUG: x509sha1=1,tls10default=1
|
|
volumes:
|
|
- .:/boulder:cached
|
|
- ./.gocache:/root/.cache/go-build:cached
|
|
- ./.hierarchy:/hierarchy/:cached
|
|
- ./.softhsm-tokens/:/var/lib/softhsm/tokens/:cached
|
|
networks:
|
|
bluenet:
|
|
ipv4_address: 10.77.77.77
|
|
rednet:
|
|
ipv4_address: 10.88.88.88
|
|
redisnet:
|
|
ipv4_address: 10.33.33.33
|
|
# Use sd-test-srv as a backup to Docker's embedded DNS server
|
|
# (https://docs.docker.com/config/containers/container-networking/#dns-services).
|
|
# If there's a name Docker's DNS server doesn't know about, it will
|
|
# forward the query to this IP (running sd-test-srv). We have
|
|
# special logic there that will return multiple IP addresses for
|
|
# service names.
|
|
dns: 10.77.77.77
|
|
ports:
|
|
- 4001:4001 # ACMEv2
|
|
- 4002:4002 # OCSP
|
|
- 4003:4003 # OCSP
|
|
depends_on:
|
|
- bmysql
|
|
- bredis_clusterer
|
|
entrypoint: test/entrypoint.sh
|
|
working_dir: &boulder_working_dir /boulder
|
|
|
|
bmysql:
|
|
image: mariadb:10.5
|
|
networks:
|
|
bluenet:
|
|
aliases:
|
|
- boulder-mysql
|
|
environment:
|
|
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
|
|
# Send slow queries to a table so we can check for them in the
|
|
# integration tests. For now we ignore queries not using indexes,
|
|
# because that seems to trigger based on the optimizer's choice to not
|
|
# use an index for certain queries, particularly when tables are still
|
|
# small.
|
|
command: mysqld --bind-address=0.0.0.0 --slow-query-log --log-output=TABLE --log-queries-not-using-indexes=ON
|
|
logging:
|
|
driver: none
|
|
|
|
bredis_1:
|
|
image: redis:latest
|
|
volumes:
|
|
- ./test/:/test/:cached
|
|
command: redis-server /test/redis.config
|
|
networks:
|
|
redisnet:
|
|
ipv4_address: 10.33.33.2
|
|
|
|
bredis_2:
|
|
image: redis:latest
|
|
volumes:
|
|
- ./test/:/test/:cached
|
|
command: redis-server /test/redis.config
|
|
networks:
|
|
redisnet:
|
|
ipv4_address: 10.33.33.3
|
|
|
|
bredis_3:
|
|
image: redis:latest
|
|
volumes:
|
|
- ./test/:/test/:cached
|
|
command: redis-server /test/redis.config
|
|
networks:
|
|
redisnet:
|
|
ipv4_address: 10.33.33.4
|
|
|
|
bredis_4:
|
|
image: redis:latest
|
|
volumes:
|
|
- ./test/:/test/:cached
|
|
command: redis-server /test/redis.config
|
|
networks:
|
|
redisnet:
|
|
ipv4_address: 10.33.33.5
|
|
|
|
bredis_5:
|
|
image: redis:latest
|
|
volumes:
|
|
- ./test/:/test/:cached
|
|
command: redis-server /test/redis.config
|
|
networks:
|
|
redisnet:
|
|
ipv4_address: 10.33.33.6
|
|
|
|
bredis_6:
|
|
image: redis:latest
|
|
volumes:
|
|
- ./test/:/test/:cached
|
|
command: redis-server /test/redis.config
|
|
networks:
|
|
redisnet:
|
|
ipv4_address: 10.33.33.7
|
|
|
|
bredis_clusterer:
|
|
image: redis:latest
|
|
volumes:
|
|
- ./test/:/test/:cached
|
|
- ./cluster/:/cluster/:cached
|
|
command: /test/wait-for-it.sh 10.33.33.2 4218 /test/redis-create.sh
|
|
depends_on:
|
|
- bredis_1
|
|
- bredis_2
|
|
- bredis_3
|
|
- bredis_4
|
|
- bredis_5
|
|
- bredis_6
|
|
networks:
|
|
redisnet:
|
|
ipv4_address: 10.33.33.10
|
|
aliases:
|
|
- boulder-redis-clusterer
|
|
|
|
netaccess:
|
|
image: *boulder_image
|
|
environment:
|
|
GO111MODULE: "on"
|
|
GOFLAGS: -mod=vendor
|
|
BOULDER_CONFIG_DIR: test/config
|
|
networks:
|
|
- bluenet
|
|
volumes:
|
|
- .:/boulder
|
|
working_dir: *boulder_working_dir
|
|
entrypoint: test/entrypoint-netaccess.sh
|
|
|
|
networks:
|
|
bluenet:
|
|
driver: bridge
|
|
ipam:
|
|
driver: default
|
|
config:
|
|
- subnet: 10.77.77.0/24
|
|
rednet:
|
|
driver: bridge
|
|
ipam:
|
|
driver: default
|
|
config:
|
|
- subnet: 10.88.88.0/24
|
|
|
|
redisnet:
|
|
driver: bridge
|
|
ipam:
|
|
driver: default
|
|
config:
|
|
- subnet: 10.33.33.0/24
|