httpx/docker-compose.yml
2025-08-07 11:21:02 +01:00

145 lines
3.7 KiB
YAML

version: '3'
services:
httpx:
environment:
- HTTPBIN_HOST=nghttp2
- HTTPBIN_NO_PROXY_HOST=http://httpbin:8000
- HTTPX_HTTP_PROXY=http://proxyuser:password@httpproxy:3128
- HTTPX_HTTPS_PROXY=http://proxyuser:password@httpproxy:3128
- HTTPX_HTTP2_PROXY=http://proxyuser:password@http2proxy:80
- HTTPX_SOCKS4_PROXY=socks4://user4:@socksproxy:8080
- HTTPX_SOCKS4A_PROXY=socks4a://user4:@socksproxy:8080
- HTTPX_SOCKS5_PROXY=socks5://user5:password@socksproxy:8080
- HTTPX_SSH_PROXY=ssh://sshproxy:22
- HTTPX_NO_JITTER=1
- N=6 # minitest workers
- MT_CPU=6 # minitest workers
- CI=1
- GEM_HOME=/usr/local/bundle
- BUNDLE_PATH=/usr/local/bundle
- BUNDLE_SILENCE_ROOT_WARNING=1
- BUNDLE_APP_CONFIG=/usr/local/bundle
- HTTPBIN_ALTSVC_HOST=another2
- AWS_DEFAULT_REGION=us-east-1
- AWS_ACCESS_KEY_ID=test
- AWS_SECRET_ACCESS_KEY=test
- AMZ_HOST=aws:4566
- WEBDAV_HOST=webdav
- DD_INSTRUMENTATION_TELEMETRY_ENABLED=false
- GRPC_VERBOSITY=ERROR
image: ruby:alpine
privileged: true
depends_on:
- httpproxy
- http2proxy
- socksproxy
- sshproxy
- nghttp2
- aws
- ws-echo-server
- webdav
- altsvc-nghttp2
volumes:
- ./:/home
entrypoint: /home/test/support/ci/build.sh
sshproxy:
image: connesc/ssh-gateway
volumes:
- ./test/support/ssh:/config
depends_on:
- nghttp2
socksproxy:
image: qautomatron/docker-3proxy
ports:
- "8080:8080"
- "3129:3129"
volumes:
- ./test/support/ci:/etc/3proxy
httpproxy:
image: sameersbn/squid:3.5.27-2
ports:
- "3128:3128"
volumes:
- ./test/support/ci/squid/proxy.conf:/etc/squid/squid.conf
- ./test/support/ci/squid/proxy-users-basic.txt:/etc/squid/proxy-users-basic.txt
- ./test/support/ci/squid/proxy-users-digest.txt:/etc/squid/proxy-users-digest.txt
command: -d 3
http2proxy:
image: registry.gitlab.com/os85/httpx/nghttp2:3
ports:
- 3300:80
depends_on:
- httpproxy
entrypoint: /usr/local/bin/nghttpx
command: --no-ocsp --frontend '*,80;no-tls' --backend 'httpproxy,3128' --http2-proxy
nghttp2:
image: registry.gitlab.com/os85/httpx/nghttp2:3
ports:
- 80:80
- 443:443
depends_on:
- httpbin
entrypoint: /usr/local/bin/nghttpx
volumes:
- ./test/support/ci:/home
command: --conf /home/nghttp.conf --no-ocsp --frontend '*,80;no-tls' --frontend '*,443'
networks:
default:
aliases:
- another
altsvc-nghttp2:
image: registry.gitlab.com/os85/httpx/nghttp2:3
ports:
- 81:80
- 444:443
depends_on:
- httpbin
entrypoint: /usr/local/bin/nghttpx
volumes:
- ./test/support/ci:/home
command: --conf /home/nghttp.conf --no-ocsp --frontend '*,80;no-tls' --frontend '*,443' --altsvc "h2,443,nghttp2"
networks:
default:
aliases:
- another2
httpbin:
environment:
- DEBUG=True
image: citizenstig/httpbin
command: gunicorn --bind=0.0.0.0:8000 --workers=6 --access-logfile - --error-logfile - --log-level debug --capture-output httpbin:app
aws:
image: localstack/localstack
environment:
- SERVICES=s3
- HOSTNAME=aws
- DEBUG=1
ports:
- 4566:4566
volumes:
- ./test/support/ci/aws:/docker-entrypoint-initaws.d
networks:
default:
aliases:
- test.aws
ws-echo-server:
environment:
- PORT=80
ports:
- 8083:80
image: jmalloc/echo-server
webdav:
image: bytemark/webdav
environment:
- AUTH_TYPE=Basic
- USERNAME=user
- PASSWORD=pass