Skip to main content
Glama
build-docker-app.sh1.78 kB
#!/usr/bin/env bash # Only build app if APP_DOCKERHUB_REPOSITORY was passed if [[ -z "${APP_DOCKERHUB_REPOSITORY}" ]]; then echo "APP_DOCKERHUB_REPOSITORY env var not configured. Skipping..." # Don't fail if no APP_DOCKERHUB_REPOSITORY present exit 0 fi if [[ -z "${GITHUB_SHA}" ]]; then echo "GITHUB_SHA is missing" exit 1 fi # Fail on error set -e # Echo commands set -x # Build app tarball # The -C flag rewrites the base path from packages/app/dist/ to ./ tar \ --no-xattrs \ -czf ./packages/app/medplum-app.tar.gz \ -C packages/app/dist . # Supply chain attestations # See: https://docs.docker.com/scout/policy/#supply-chain-attestations ATTESTATIONS="--provenance=true --sbom=true" # Target platforms PLATFORMS="--platform linux/amd64,linux/arm64" # If this is a release, get version information # Release is specified with a "--release" argument IS_RELEASE=false IS_LATEST=false for arg in "$@"; do if [[ "$arg" == "--release" ]]; then IS_RELEASE=true FULL_VERSION=$(node -p "require('./package.json').version") MAJOR_DOT_MINOR=$(node -p "require('./package.json').version.split('.').slice(0, 2).join('.')") continue fi if [[ "$arg" == "--latest" ]]; then IS_LATEST=true continue fi done # This is so we can build the staging server Dockerfile without having to build app # Build and push app Docker images APP_TAGS="--tag $APP_DOCKERHUB_REPOSITORY:$GITHUB_SHA" if [[ "$IS_LATEST" == "true" ]]; then APP_TAGS="$APP_TAGS --tag $APP_DOCKERHUB_REPOSITORY:latest" fi if [[ "$IS_RELEASE" == "true" ]]; then APP_TAGS="$APP_TAGS --tag $APP_DOCKERHUB_REPOSITORY:$FULL_VERSION --tag $APP_DOCKERHUB_REPOSITORY:$MAJOR_DOT_MINOR" fi pushd packages/app docker buildx build $ATTESTATIONS $PLATFORMS $APP_TAGS --push . popd

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/medplum/medplum'

If you have feedback or need assistance with the MCP directory API, please join our Discord server