mirror of https://git.lenooby09.tech/LeNooby09/social-app.git
at samuel/exp-cli 110 lines 2.7 kB view raw
1FROM golang:1.23-bullseye 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# 23# Expo 24# 25ARG EXPO_PUBLIC_BUNDLE_IDENTIFIER 26ENV EXPO_PUBLIC_BUNDLE_IDENTIFIER=${EXPO_PUBLIC_BUNDLE_IDENTIFIER:-dev} 27 28# The latest git hash of the preview branch on render.com 29ARG RENDER_GIT_COMMIT 30 31# 32# Sentry 33# 34ARG SENTRY_AUTH_TOKEN 35ENV SENTRY_AUTH_TOKEN=${SENTRY_AUTH_TOKEN:-unknown} 36# Will fall back to package.json#version, but this is handled elsewhere 37ARG SENTRY_RELEASE 38ENV SENTRY_RELEASE=$SENTRY_RELEASE 39ARG SENTRY_DIST 40# Default to RENDER_GIT_COMMIT if not set by GitHub workflows 41ENV SENTRY_DIST=${SENTRY_DIST:-$RENDER_GIT_COMMIT} 42ARG SENTRY_DSN 43ENV SENTRY_DSN=$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_BUNDLE_IDENTIFIER=$EXPO_PUBLIC_BUNDLE_IDENTIFIER" >> .env && \ 64 echo "EXPO_PUBLIC_BUNDLE_DATE=$(date -u +"%y%m%d%H")" >> .env && \ 65 npm install --global yarn && \ 66 yarn && \ 67 yarn intl:build 2>&1 | tee i18n.log && \ 68 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 && \ 69 EXPO_PUBLIC_BUNDLE_IDENTIFIER=$EXPO_PUBLIC_BUNDLE_IDENTIFIER EXPO_PUBLIC_BUNDLE_DATE=$() SENTRY_AUTH_TOKEN=$SENTRY_AUTH_TOKEN SENTRY_RELEASE=$SENTRY_RELEASE SENTRY_DIST=$SENTRY_DIST SENTRY_DSN=$SENTRY_DSN yarn build-web 70 71# DEBUG 72RUN find ./bskyweb/static && find ./web-build/static 73 74# 75# Generate the bskyweb Go binary. 76# 77RUN cd bskyweb/ && \ 78 go mod download && \ 79 go mod verify 80 81RUN cd bskyweb/ && \ 82 go build \ 83 -v \ 84 -trimpath \ 85 -tags timetzdata \ 86 -o /bskyweb \ 87 ./cmd/bskyweb 88 89FROM debian:bullseye-slim 90 91ENV GODEBUG=netdns=go 92ENV TZ=Etc/UTC 93ENV DEBIAN_FRONTEND=noninteractive 94 95RUN apt-get update && apt-get install --yes \ 96 dumb-init \ 97 ca-certificates 98 99ENTRYPOINT ["dumb-init", "--"] 100 101WORKDIR /bskyweb 102COPY --from=build-env /bskyweb /usr/bin/bskyweb 103 104CMD ["/usr/bin/bskyweb"] 105 106LABEL org.opencontainers.image.source=https://github.com/bluesky-social/social-app 107LABEL org.opencontainers.image.description="bsky.app Web App" 108LABEL org.opencontainers.image.licenses=MIT 109 110# NOOP