Files
e2b-dev--e2b/api-service/Dockerfile
T
2023-04-11 11:20:18 +00:00

45 lines
1.1 KiB
Docker

# This stage builds playground
FROM --platform=linux/amd64 node:lts-slim as playground
WORKDIR /playground
COPY playground/package.json playground/package-lock.json ./
RUN npm ci
COPY playground/tsconfig.json ./
COPY playground/tsoa.json ./
COPY playground/scripts/build.js ./scripts/build.js
COPY playground/src ./src
RUN npm run build
# This is the final image that also installs python deps
FROM --platform=linux/amd64 nikolaik/python-nodejs:python3.10-nodejs18-slim
ENV PYTHONFAULTHANDLER=1 \
PYTHONHASHSEED=random \
PYTHONUNBUFFERED=1
ENV PIP_DEFAULT_TIMEOUT=100 \
PIP_DISABLE_PIP_VERSION_CHECK=1 \
PIP_NO_CACHE_DIR=1
RUN poetry config virtualenvs.in-project true
WORKDIR /app
COPY pyproject.toml poetry.lock ./
RUN --mount=type=cache,target=/home/.cache/pypoetry/cache \
--mount=type=cache,target=/home/.cache/pypoetry/artifacts \
poetry install --with deploy --no-root --no-ansi --no-interaction
COPY . ./
RUN rm -rf ./playground
WORKDIR /playground
COPY --from=playground ./playground/node_modules ./node_modules
COPY --from=playground ./playground/lib ./lib
WORKDIR /app
CMD exec ./start.sh