name: torrust services: idx-back: build: context: . args: RUN_AS_USER: appuser UID: ${TORRUST_IDX_BACK_USER_UID:-1000} target: development user: ${TORRUST_IDX_BACK_USER_UID:-1000}:${TORRUST_IDX_BACK_USER_UID:-1000} tty: true environment: - TORRUST_IDX_BACK_CONFIG=${TORRUST_IDX_BACK_CONFIG} - CARGO_HOME=/home/appuser/.cargo networks: - server_side ports: - 3001:3001 # todo: implement healthcheck #healthcheck: # test: # [ # "CMD-SHELL", # "cargo run healthcheck" # ] # interval: 10s # retries: 5 # start_period: 10s # timeout: 3s volumes: - ./:/app - ~/.cargo:/home/appuser/.cargo depends_on: - tracker - mailcatcher - mysql tracker: image: torrust/tracker:develop user: ${TORRUST_TRACKER_USER_UID:-1000}:${TORRUST_TRACKER_USER_UID:-1000} tty: true environment: - TORRUST_TRACKER_CONFIG=${TORRUST_TRACKER_CONFIG} - TORRUST_TRACKER_API_TOKEN=${TORRUST_TRACKER_API_TOKEN:-MyAccessToken} networks: - server_side ports: - 6969:6969/udp - 1212:1212/tcp # todo: implement healthcheck #healthcheck: # test: # [ # "CMD-SHELL", # "/app/main healthcheck" # ] # interval: 10s # retries: 5 # start_period: 10s # timeout: 3s volumes: - ./storage:/app/storage depends_on: - mysql mailcatcher: image: dockage/mailcatcher:0.8.2 networks: - server_side ports: - 1080:1080 - 1025:1025 mysql: image: mysql:8.0 command: '--default-authentication-plugin=mysql_native_password' healthcheck: test: [ 'CMD-SHELL', 'mysqladmin ping -h 127.0.0.1 --password="$$(cat /run/secrets/db-password)" --silent' ] interval: 3s retries: 5 start_period: 30s environment: - MYSQL_ROOT_HOST=% - MYSQL_ROOT_PASSWORD=root_secret_password - MYSQL_DATABASE=torrust_index_backend - MYSQL_USER=db_user - MYSQL_PASSWORD=db_user_secret_password networks: - server_side ports: - 3306:3306 volumes: - mysql_data:/var/lib/mysql networks: server_side: {} volumes: mysql_data: {}