Files
supabase/studio/Dockerfile
2022-09-28 15:46:17 +08:00

47 lines
1.4 KiB
Docker

## USAGE:
# Build: docker build --target production -t supabase/studio:latest .
# Run: docker run -p 3000:3000 supabase/studio
# Deploy: docker push supabase/studio:latest
# Clean build:
# docker build --target production --no-cache -t supabase/studio:latest .
# docker builder prune
FROM node:16-slim as base
RUN apt-get update && apt-get install -y --no-install-recommends \
python3 \
build-essential \
&& rm -rf /var/lib/apt/lists/*
FROM base as builder
WORKDIR /usr/src/app
COPY package*.json .
COPY turbo.json .
COPY packages packages
COPY studio studio
# the following command is still unsupported for npm // https://github.com/vercel/turborepo/issues/1830
# RUN npm i -g turbo
# RUN turbo prune --scope=studio --docker
# RUN npm clean-install && npm cache clean --force
ENTRYPOINT ["docker-entrypoint.sh"]
FROM builder as dev
COPY --from=builder /usr/src/app ./
RUN npm clean-install && npm cache clean --force
EXPOSE 8082
CMD ["npx", "turbo", "run", "dev", "--filter=studio"]
FROM builder as productionprep
WORKDIR /app
COPY --from=builder /usr/src/app ./
RUN npm clean-install \
&& npm cache clean --force \
&& npx turbo run build --scope=studio --include-dependencies --no-deps \
&& rm -rf ./studio/.next/cache/webpack \
&& npm prune --production
FROM node:16-slim as production
COPY --from=productionprep /app /app
WORKDIR /app/studio
EXPOSE 3000
CMD ["npm", "run", "start"]