version: '3' services: da1: build: context: . dockerfile: Dockerfile args: NICKNAME: ${DA1_NICKNAME} environment: ROLE: DA DA1_NICKNAME: DA1 volumes: ## Needed to keep track of other nodes - ./tor:/tor - ./keys:/keys command: > sh -c " echo $DA1_NICKNAME && mkdir -p /tor/$DA1_NICKNAME/keys && cp -r /keys/* /tor/$DA1_NICKNAME/keys && tor -f /etc/tor/torrc" da2: build: context: . dockerfile: Dockerfile args: NICKNAME: ${DA2_NICKNAME} environment: ROLE: DA DA2_NICKNAME: DA2 volumes: ## Needed to keep track of other nodes - ./tor:/tor - ./keys:/keys command: > sh -c " echo $DA2_NICKNAME && mkdir -p /tor/$DA2_NICKNAME/keys && cp -r /keys/* /tor/$DA2_NICKNAME/keys && tor -f /etc/tor/torrc" da3: build: context: . dockerfile: Dockerfile args: NICKNAME: ${DA3_NICKNAME} environment: ROLE: DA DA3_NICKNAME: DA3 volumes: ## Needed to keep track of other nodes - ./tor:/tor - ./keys:/keys command: > sh -c " echo $DA3_NICKNAME && mkdir -p /tor/$DA3_NICKNAME/keys && cp -r /keys/* /tor/$DA3_NICKNAME/keys && tor -f /etc/tor/torrc" relay: image: tor-network:latest #expose: # - "7000" # - "9030" environment: ROLE: RELAY volumes: - ./tor:/tor depends_on: # Make sure the DA's are already up - da1 - da2 - da3 - build_image exit: image: tor-network:latest #expose: # - "7000" # - "9030" environment: ROLE: EXIT volumes: - ./tor:/tor depends_on: # Make sure the DA's are already up - da1 - da2 - da3 - build_image client: image: tor-network:latest ports: # Setups a listener on host machine - "9050:9050" - "9051:9051" volumes: - ./tor:/tor - ./keys:/keys environment: ROLE: CLIENT command: > sh -c " mkdir -p /tor/$(hostname)/keys && cp -r /keys /tor/$(hostname) && tor -f /etc/tor/torrc" depends_on: - da1 - da2 - da3 - build_image hs: image: tor-network:latest #expose: # - "80" environment: ROLE: HS # This will create a hidden service that points to # the service "web" which is runing nginx. You can # change this to whatever ip or hostname you want TOR_HS_PORT: "80" TOR_HS_ADDR: "web" volumes: - ./tor:/tor depends_on: - da1 - da2 - da3 - build_image links: - web web: image: nginx #expose: # - "80" build_image: build: context: . dockerfile: Dockerfile volumes: ## Needed to keep track of other nodes - ./tor:/tor image: tor-network:latest command: ["/bin/true"]