--- version: "3" services: sabredav: image: php:8.1-alpine3.15 restart: always volumes: - ./:/var/www/html/ ports: - "4040:4040" command: php -S 0.0.0.0:4040 /var/www/html/src/WebDAV/resources/server.php webdav: image: bytemark/webdav restart: always ports: - "4080:80" environment: AUTH_TYPE: Digest USERNAME: alice PASSWORD: secret1234 ANONYMOUS_METHODS: 'GET,OPTIONS' sftp: container_name: sftp restart: always image: atmoz/sftp volumes: - ./test_files/sftp/users.conf:/etc/sftp/users.conf - ./test_files/sftp/ssh_host_ed25519_key:/etc/ssh/ssh_host_ed25519_key - ./test_files/sftp/ssh_host_rsa_key:/etc/ssh/ssh_host_rsa_key - ./test_files/sftp/id_rsa.pub:/home/bar/.ssh/keys/id_rsa.pub ports: - "2222:22" sftp_eddsa_only: container_name: sftp_eddsa_only restart: always image: atmoz/sftp volumes: - ./test_files/sftp/users.conf:/etc/sftp/users.conf - ./test_files/sftp/sshd_custom_configs.sh:/etc/sftp.d/sshd_custom_configs.sh - ./test_files/sftp/ssh_host_ed25519_key:/etc/ssh/ssh_host_ed25519_key ports: - "2223:22" ftp: container_name: ftp restart: always image: delfer/alpine-ftp-server environment: USERS: 'foo|pass|/home/foo/upload' ADDRESS: 'localhost' ports: - "2121:21" - "21000-21010:21000-21010" ftpd: container_name: ftpd restart: always environment: PUBLICHOST: localhost FTP_USER_NAME: foo FTP_USER_PASS: pass FTP_USER_HOME: /home/foo image: stilliard/pure-ftpd ports: - "2122:21" - "30000-30009:30000-30009" command: "/run.sh -l puredb:/etc/pure-ftpd/pureftpd.pdb -E -j -P localhost" toxiproxy: container_name: toxiproxy restart: unless-stopped image: ghcr.io/shopify/toxiproxy command: "-host 0.0.0.0 -config /opt/toxiproxy/config.json" volumes: - ./test_files/toxiproxy/toxiproxy.json:/opt/toxiproxy/config.json:ro ports: - "8474:8474" # HTTP API - "8222:8222" # SFTP - "8121:8121" # FTP - "8122:8122" # FTPD