version: '3' services: zrok-enable-init: image: busybox # matches uid:gid of "nobody" in zrok container image command: chown -Rc 65534:65534 /mnt/.zrok user: root volumes: - zrok_env:/mnt/.zrok zrok-enable: image: docker.io/openziti/zrok depends_on: zrok-enable-init: condition: service_completed_successfully entrypoint: - bash - -c - | if [[ -s /mnt/.zrok/environment.json ]]; then echo "INFO: noop: zrok environment is already enabled" exit 0 else echo "INFO: running: zrok $$(sed -E "s/${ZROK_ENABLE_TOKEN}/************/" <<< $${@})" exec zrok $${@} fi command: -- enable --headless ${ZROK_ENABLE_TOKEN} volumes: - zrok_env:/mnt/.zrok environment: HOME: /mnt ZROK_ENABLE_TOKEN: ZROK_API_ENDPOINT: ${ZROK_API_ENDPOINT:-https://api.zrok.io/} zrok-private-share: image: docker.io/openziti/zrok command: share private --headless http://zrok-test:9090 depends_on: zrok-enable: condition: service_completed_successfully volumes: - zrok_env:/mnt/.zrok environment: HOME: /mnt PFXLOG_NO_JSON: "true" # demo servers you can share with zrok zrok-test: image: docker.io/openziti/zrok command: test endpoint --address 0.0.0.0 # 9090 httpbin-test: image: mccutchen/go-httpbin # 8080/tcp volumes: zrok_env: