Bluesky app fork with some witchin' additions 馃挮
at main 2.9 kB view raw
1FROM golang:1.25-bookworm AS build-env 2 3WORKDIR /usr/src/social-app 4 5ENV DEBIAN_FRONTEND=noninteractive 6 7# 8# Node 9# 10ENV NODE_VERSION=20 11ENV NVM_DIR=/usr/share/nvm 12 13# 14# Go 15# 16ENV GODEBUG="netdns=go" 17ENV GOOS="linux" 18ENV GOARCH="amd64" 19ENV CGO_ENABLED=1 20ENV GOEXPERIMENT="loopvar" 21 22# The latest git hash of the preview branch on render.com 23# https://render.com/docs/docker-secrets#environment-variables-in-docker-builds 24ARG RENDER_GIT_COMMIT 25 26# 27# Expo 28# 29ARG EXPO_PUBLIC_ENV 30ENV EXPO_PUBLIC_ENV=${EXPO_PUBLIC_ENV:-development} 31ARG EXPO_PUBLIC_RELEASE_VERSION 32ENV EXPO_PUBLIC_RELEASE_VERSION=$EXPO_PUBLIC_RELEASE_VERSION 33ARG EXPO_PUBLIC_BUNDLE_IDENTIFIER 34# If not set by GitHub workflows, we're probably in Render 35ENV EXPO_PUBLIC_BUNDLE_IDENTIFIER=${EXPO_PUBLIC_BUNDLE_IDENTIFIER:-$RENDER_GIT_COMMIT} 36 37# 38# Sentry 39# 40ARG SENTRY_AUTH_TOKEN 41ENV SENTRY_AUTH_TOKEN=${SENTRY_AUTH_TOKEN:-unknown} 42ARG EXPO_PUBLIC_SENTRY_DSN 43ENV EXPO_PUBLIC_SENTRY_DSN=$EXPO_PUBLIC_SENTRY_DSN 44 45# 46# Copy everything into the container 47# 48COPY . . 49 50# 51# Generate the JavaScript webpack. 52# 53RUN mkdir --parents $NVM_DIR && \ 54 wget \ 55 --output-document=/tmp/nvm-install.sh \ 56 https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh && \ 57 bash /tmp/nvm-install.sh 58 59RUN \. "$NVM_DIR/nvm.sh" && \ 60 nvm install $NODE_VERSION && \ 61 nvm use $NODE_VERSION && \ 62 echo "Using bundle identifier: $EXPO_PUBLIC_BUNDLE_IDENTIFIER" && \ 63 echo "EXPO_PUBLIC_ENV=$EXPO_PUBLIC_ENV" >> .env && \ 64 echo "EXPO_PUBLIC_RELEASE_VERSION=$EXPO_PUBLIC_RELEASE_VERSION" >> .env && \ 65 echo "EXPO_PUBLIC_BUNDLE_IDENTIFIER=$EXPO_PUBLIC_BUNDLE_IDENTIFIER" >> .env && \ 66 echo "EXPO_PUBLIC_BUNDLE_DATE=$(date -u +"%y%m%d%H")" >> .env && \ 67 echo "EXPO_PUBLIC_SENTRY_DSN=$EXPO_PUBLIC_SENTRY_DSN" >> .env && \ 68 npm install --global yarn && \ 69 yarn && \ 70 yarn intl:build 2>&1 | tee i18n.log && \ 71 if grep -q "invalid syntax" "i18n.log"; then echo "\n\nFound compilation errors!\n\n" && exit 1; else echo "\n\nNo compile errors!\n\n"; fi && \ 72 SENTRY_AUTH_TOKEN=$SENTRY_AUTH_TOKEN SENTRY_RELEASE=$EXPO_PUBLIC_RELEASE_VERSION SENTRY_DIST=$EXPO_PUBLIC_BUNDLE_IDENTIFIER yarn build-web 73 74# DEBUG 75RUN find ./bskyweb/static && find ./web-build/static 76 77# 78# Generate the bskyweb Go binary. 79# 80RUN cd bskyweb/ && \ 81 go mod download && \ 82 go mod verify 83 84RUN cd bskyweb/ && \ 85 go build \ 86 -v \ 87 -trimpath \ 88 -tags timetzdata \ 89 -o /bskyweb \ 90 ./cmd/bskyweb 91 92FROM debian:bookworm-slim 93 94ENV GODEBUG=netdns=go 95ENV TZ=Etc/UTC 96ENV DEBIAN_FRONTEND=noninteractive 97 98RUN apt-get update && apt-get install --yes \ 99 dumb-init \ 100 ca-certificates 101 102ENTRYPOINT ["dumb-init", "--"] 103 104WORKDIR /bskyweb 105COPY --from=build-env /bskyweb /usr/bin/bskyweb 106 107CMD ["/usr/bin/bskyweb"] 108 109LABEL org.opencontainers.image.source=https://github.com/bluesky-social/social-app 110LABEL org.opencontainers.image.description="bsky.app Web App" 111LABEL org.opencontainers.image.licenses=MIT 112 113# NOOP