...

Text file src/github.com/letsencrypt/boulder/docker-compose.yml

Documentation: github.com/letsencrypt/boulder

     1version: '3'
     2services:
     3  boulder:
     4    # Should match one of the GO_DEV_VERSIONS in test/boulder-tools/tag_and_upload.sh.
     5    image: &boulder_image letsencrypt/boulder-tools:${BOULDER_TOOLS_TAG:-go1.21.3_2023-10-12}
     6    environment:
     7      # To solve HTTP-01 and TLS-ALPN-01 challenges, change the IP in FAKE_DNS
     8      # to the IP address where your ACME client's solver is listening.
     9      # FAKE_DNS: 172.17.0.1
    10      FAKE_DNS: 10.77.77.77
    11      BOULDER_CONFIG_DIR: &boulder_config_dir test/config
    12      GOFLAGS: -mod=vendor
    13      # Forward the parent env's GOEXPERIMENT value into the container.
    14      GOEXPERIMENT: ${GOEXPERIMENT}
    15    volumes:
    16      - .:/boulder:cached
    17      - ./.gocache:/root/.cache/go-build:cached
    18      - ./.hierarchy:/hierarchy/:cached
    19      - ./.softhsm-tokens/:/var/lib/softhsm/tokens/:cached
    20    networks:
    21      bluenet:
    22        ipv4_address: 10.77.77.77
    23      rednet:
    24        ipv4_address: 10.88.88.88
    25      redisnet:
    26        ipv4_address: 10.33.33.33
    27      consulnet:
    28        ipv4_address: 10.55.55.55
    29    # Use consul as a backup to Docker's embedded DNS server. If there's a name
    30    # Docker's DNS server doesn't know about, it will forward the query to this
    31    # IP (running consul).
    32    # (https://docs.docker.com/config/containers/container-networking/#dns-services).
    33    # This is used to look up service names via A records (like ra.service.consul) that
    34    # are configured via the ServerAddress field of cmd.GRPCClientConfig.
    35    # TODO: Remove this when ServerAddress is deprecated in favor of SRV records
    36    # and DNSAuthority.
    37    dns: 10.55.55.10
    38    ports:
    39      - 4001:4001 # ACMEv2
    40      - 4002:4002 # OCSP
    41      - 4003:4003 # OCSP
    42    depends_on:
    43      - bmysql
    44      - bproxysql
    45      - bredis_1
    46      - bredis_2
    47      - bredis_3
    48      - bredis_4
    49      - bconsul
    50      - bjaeger
    51    entrypoint: test/entrypoint.sh
    52    working_dir: &boulder_working_dir /boulder
    53
    54  bmysql:
    55    image: mariadb:10.5
    56    networks:
    57      bluenet:
    58        aliases:
    59          - boulder-mysql
    60    environment:
    61      MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
    62    # Send slow queries to a table so we can check for them in the
    63    # integration tests. For now we ignore queries not using indexes,
    64    # because that seems to trigger based on the optimizer's choice to not
    65    # use an index for certain queries, particularly when tables are still
    66    # small.
    67    command: mysqld --bind-address=0.0.0.0 --slow-query-log --log-output=TABLE --log-queries-not-using-indexes=ON
    68    logging:
    69      driver: none
    70  bproxysql:
    71    image: proxysql/proxysql:2.5.4
    72    # The --initial flag force resets the ProxySQL database on startup. By
    73    # default, ProxySQL ignores new configuration if the database already
    74    # exists. Without this flag, new configuration wouldn't be applied until you
    75    # ran `docker compose down`.
    76    entrypoint: proxysql -f --idle-threads -c /test/proxysql/proxysql.cnf --initial
    77    volumes:
    78      - ./test/:/test/:cached
    79    depends_on:
    80      - bmysql
    81    networks:
    82      bluenet:
    83        aliases:
    84          - boulder-proxysql
    85
    86  bredis_1:
    87    image: redis:6.2.7
    88    volumes:
    89      - ./test/:/test/:cached
    90    command: redis-server /test/redis-ocsp.config
    91    networks:
    92      redisnet:
    93        ipv4_address: 10.33.33.2
    94
    95  bredis_2:
    96    image: redis:6.2.7
    97    volumes:
    98      - ./test/:/test/:cached
    99    command: redis-server /test/redis-ocsp.config
   100    networks:
   101      redisnet:
   102        ipv4_address: 10.33.33.3
   103
   104  bredis_3:
   105    image: redis:6.2.7
   106    volumes:
   107      - ./test/:/test/:cached
   108    command: redis-server /test/redis-ratelimits.config
   109    networks:
   110      redisnet:
   111        ipv4_address: 10.33.33.4
   112
   113  bredis_4:
   114    image: redis:6.2.7
   115    volumes:
   116      - ./test/:/test/:cached
   117    command: redis-server /test/redis-ratelimits.config
   118    networks:
   119      redisnet:
   120        ipv4_address: 10.33.33.5
   121
   122  bconsul:
   123    image: hashicorp/consul:1.15.4
   124    volumes:
   125     - ./test/:/test/:cached
   126    networks:
   127      consulnet:
   128        ipv4_address: 10.55.55.10
   129      bluenet:
   130        ipv4_address: 10.77.77.10
   131      rednet:
   132        ipv4_address: 10.88.88.10
   133    command: "consul agent -dev -config-format=hcl -config-file=/test/consul/config.hcl"
   134
   135  netaccess:
   136    image: *boulder_image
   137    environment:
   138      GO111MODULE: "on"
   139      GOFLAGS: -mod=vendor
   140      BOULDER_CONFIG_DIR: *boulder_config_dir
   141    networks:
   142      - bluenet
   143    volumes:
   144      - .:/boulder
   145    working_dir: *boulder_working_dir
   146    entrypoint: test/entrypoint-netaccess.sh
   147
   148  bjaeger:
   149    image: jaegertracing/all-in-one:1.44
   150    environment:
   151      COLLECTOR_OTLP_ENABLED: "true"
   152    networks:
   153      bluenet:
   154        ipv4_address: 10.77.77.17
   155
   156networks:
   157  bluenet:
   158    driver: bridge
   159    ipam:
   160      driver: default
   161      config:
   162        - subnet: 10.77.77.0/24
   163
   164  rednet:
   165    driver: bridge
   166    ipam:
   167      driver: default
   168      config:
   169        - subnet: 10.88.88.0/24
   170
   171  redisnet:
   172    driver: bridge
   173    ipam:
   174      driver: default
   175      config:
   176        - subnet: 10.33.33.0/24
   177
   178  consulnet:
   179    driver: bridge
   180    ipam:
   181      driver: default
   182      config:
   183        - subnet: 10.55.55.0/24

View as plain text