73 lines
1.4 KiB
Docker
73 lines
1.4 KiB
Docker
|
FROM golang:1.20-bullseye AS build-env
|
||
|
|
||
|
WORKDIR /usr/src/social-app
|
||
|
|
||
|
ENV DEBIAN_FRONTEND=noninteractive
|
||
|
|
||
|
# Node
|
||
|
ENV NODE_VERSION=18
|
||
|
ENV NVM_DIR=/usr/share/nvm
|
||
|
|
||
|
# Go
|
||
|
ENV GODEBUG="netdns=go"
|
||
|
ENV GOOS="linux"
|
||
|
ENV GOARCH="amd64"
|
||
|
ENV CGO_ENABLED=1
|
||
|
|
||
|
COPY . .
|
||
|
|
||
|
#
|
||
|
# Generate the Javascript webpack.
|
||
|
#
|
||
|
RUN mkdir --parents $NVM_DIR && \
|
||
|
wget \
|
||
|
--output-document=/tmp/nvm-install.sh \
|
||
|
https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh && \
|
||
|
bash /tmp/nvm-install.sh
|
||
|
|
||
|
RUN \. "$NVM_DIR/nvm.sh" && \
|
||
|
nvm install $NODE_VERSION && \
|
||
|
nvm use $NODE_VERSION && \
|
||
|
npm install --global yarn && \
|
||
|
yarn && \
|
||
|
yarn build-web
|
||
|
|
||
|
# DEBUG
|
||
|
RUN find ./bskyweb/static && find ./web-build/static
|
||
|
|
||
|
#
|
||
|
# Generate the bksyweb Go binary.
|
||
|
#
|
||
|
RUN cd bskyweb/ && \
|
||
|
go mod download && \
|
||
|
go mod verify
|
||
|
|
||
|
RUN cd bskyweb/ && \
|
||
|
go build \
|
||
|
-v \
|
||
|
-trimpath \
|
||
|
-tags timetzdata \
|
||
|
-o /bskyweb \
|
||
|
./cmd/bskyweb
|
||
|
|
||
|
FROM debian:bullseye-slim
|
||
|
|
||
|
ENV GODEBUG=netdns=go
|
||
|
ENV TZ=Etc/UTC
|
||
|
ENV DEBIAN_FRONTEND=noninteractive
|
||
|
|
||
|
RUN apt-get update && apt-get install --yes \
|
||
|
dumb-init \
|
||
|
ca-certificates
|
||
|
|
||
|
ENTRYPOINT ["dumb-init", "--"]
|
||
|
|
||
|
WORKDIR /bskyweb
|
||
|
COPY --from=build-env /bskyweb /usr/bin/bskyweb
|
||
|
|
||
|
CMD ["/usr/bin/bskyweb"]
|
||
|
|
||
|
LABEL org.opencontainers.image.source=https://github.com/bluesky-social/social-app
|
||
|
LABEL org.opencontainers.image.description="bsky.app Web App"
|
||
|
LABEL org.opencontainers.image.licenses=MIT
|