services: server: image: server:${SHELLHUB_DEV_IMAGE_TAG:-latest} build: &server-development-build context: . dockerfile: server/Dockerfile target: development args: DOCKERHUB_MIRROR: ${DOCKERHUB_MIRROR:-} GOLANG_VERSION: ${GOLANG_VERSION} ALPINE_VERSION: ${ALPINE_VERSION} AIR_VERSION: ${AIR_VERSION} GOLANGCI_LINT_VERSION: ${GOLANGCI_LINT_VERSION} MOCKERY_VERSION: ${MOCKERY_VERSION} DOCKER_VERSION: ${DOCKER_VERSION} MJML_VERSION: ${MJML_VERSION} volumes: - ./server:/go/src/github.com/shellhub-io/shellhub/server - ./pkg:/go/src/github.com/shellhub-io/shellhub/pkg - ./openapi:/go/src/github.com/shellhub-io/shellhub/openapi - ./tests:/go/src/github.com/shellhub-io/shellhub/tests - ${SHELLHUB_DEV_DOCKER_SOCKET:-/var/run/docker.sock}:/var/run/docker.sock - ./.golangci.yaml:/.golangci.yaml - ./.mockery.yaml:/go/src/github.com/shellhub-io/shellhub/.mockery.yaml - ./go.sum:/go/src/github.com/shellhub-io/shellhub/go.sum - ./install.sh:/go/src/github.com/shellhub-io/shellhub/install.sh - ./versions.env:/go/src/github.com/shellhub-io/shellhub/versions.env environment: - TESTCONTAINERS_DOCKER_NETWORK=${SHELLHUB_NETWORK} - TESTCONTAINERS_DOCKER_SOCKET_OVERRIDE=${SHELLHUB_DEV_DOCKER_SOCKET:-/var/run/docker.sock} - SHELLHUB_EDITION=${SHELLHUB_EDITION} - SHELLHUB_ENV=${SHELLHUB_ENV} - SHELLHUB_TELEMETRY=false - SHELLHUB_GEOIP_DATABASE=${SHELLHUB_GEOIP_DATABASE:-fake} - SHELLHUB_GEOIP_UPDATE=${SHELLHUB_GEOIP_UPDATE:-false} - SHELLHUB_ACME_CA_SERVER=https://acme-staging-v02.api.letsencrypt.org/directory ui: image: ui:${SHELLHUB_DEV_IMAGE_TAG:-latest} build: context: . dockerfile: ui/Dockerfile target: development args: DOCKERHUB_MIRROR: ${DOCKERHUB_MIRROR:-} NODE_VERSION: ${NODE_VERSION} ALPINE_VERSION: ${ALPINE_VERSION} SWS_VERSION: ${SWS_VERSION} REDOCLY_VERSION: ${REDOCLY_VERSION} environment: - PUBLIC_SHELLHUB_VERSION=${SHELLHUB_VERSION} - PUBLIC_SHELLHUB_DOMAIN=${SHELLHUB_DOMAIN} - REDOCLY_VERSION=${REDOCLY_VERSION} volumes: - ./ui:/src - ./openapi:/openapi:ro openapi: image: openapi:${SHELLHUB_DEV_IMAGE_TAG:-latest} build: context: . dockerfile: openapi/Dockerfile target: development args: DOCKERHUB_MIRROR: ${DOCKERHUB_MIRROR:-} GOLANG_VERSION: ${GOLANG_VERSION} AIR_VERSION: ${AIR_VERSION} GOLANGCI_LINT_VERSION: ${GOLANGCI_LINT_VERSION} REDOCLY_VERSION: ${REDOCLY_VERSION} PRISM_VERSION: ${PRISM_VERSION} PRETTIER_VERSION: ${PRETTIER_VERSION} volumes: - ./openapi:/go/src/github.com/shellhub-io/shellhub/openapi - ./pkg:/go/src/github.com/shellhub-io/shellhub/pkg - ./.golangci.yaml:/.golangci.yaml environment: - SHELLHUB_EDITION=${SHELLHUB_EDITION} networks: - shellhub test: image: server:${SHELLHUB_DEV_IMAGE_TAG:-latest} build: *server-development-build profiles: - tools entrypoint: [] network_mode: host working_dir: ${SHELLHUB_WORKSPACE}/shellhub volumes: - ${SHELLHUB_WORKSPACE}:${SHELLHUB_WORKSPACE} - ${SHELLHUB_DEV_DOCKER_SOCKET:-/var/run/docker.sock}:/var/run/docker.sock - tools-cache:/cache - ${SHELLHUB_LICENSE_FILE:-/dev/null}:${SHELLHUB_LICENSE_FILE:-/run/no-license}:ro environment: - GOCACHE=/cache/go-build - GOMODCACHE=/cache/go-mod - GOFLAGS=-buildvcs=false - npm_config_cache=/cache/npm - TESTCONTAINERS_RYUK_DISABLED=true - TESTCONTAINERS_HOST_OVERRIDE=localhost - TESTCONTAINERS_DOCKER_SOCKET_OVERRIDE=${SHELLHUB_DEV_DOCKER_SOCKET:-/var/run/docker.sock} e2e: image: shellhub-e2e:${E2E_PLAYWRIGHT_VERSION:-latest} build: context: ui dockerfile: e2e.Dockerfile args: - DOCKERHUB_MIRROR=${DOCKERHUB_MIRROR:-} - DOCKER_VERSION=${DOCKER_VERSION} - PLAYWRIGHT_VERSION=${E2E_PLAYWRIGHT_VERSION:-} profiles: - tools network_mode: host working_dir: ${SHELLHUB_WORKSPACE}/shellhub/ui/apps/console volumes: - ${SHELLHUB_WORKSPACE}:${SHELLHUB_WORKSPACE} - ${SHELLHUB_DEV_DOCKER_SOCKET:-/var/run/docker.sock}:/var/run/docker.sock environment: - NPM_CONFIG_UPDATE_NOTIFIER=false - E2E_DOCKER_SOCKET=${SHELLHUB_DEV_DOCKER_SOCKET:-/var/run/docker.sock} volumes: tools-cache: name: shellhub-tools-cache