dockge/.devcontainer/Dockerfile
2024-11-17 11:22:12 +00:00

43 lines
No EOL
1.5 KiB
Docker

# Due to the bug of #145, Node.js's version cannot be changed, unless upstream is fixed.
# TODO: use proper devcontainer??
FROM node:18.17.1-bookworm
ENV PNPM_HOME="/pnpm"
ENV PATH="$PNPM_HOME:$PATH"
ENV NODE_ENV="development"
RUN apt update && apt install --yes --no-install-recommends \
curl \
ca-certificates \
gnupg \
unzip \
dumb-init \
sqlite3 \
&& install -m 0755 -d /etc/apt/keyrings \
&& curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg \
&& chmod a+r /etc/apt/keyrings/docker.gpg \
&& echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
tee /etc/apt/sources.list.d/docker.list > /dev/null \
&& apt update \
&& apt --yes --no-install-recommends install \
docker-ce-cli \
docker-compose-plugin \
&& rm -rf /var/lib/apt/lists/* \
&& npm install pnpm -g \
&& pnpm install -g tsx
# Set the working directory
WORKDIR /app
# Copy package.json and pnpm-lock.yaml to the working directory
COPY --chown=node:node ./package.json ./package.json
COPY --chown=node:node ./pnpm-lock.yaml ./pnpm-lock.yaml
RUN pnpm install
# Add the "node_modules" volume to enable caching
VOLUME [ "/app/node_modules" ]
VOLUME [ "/opt/stacks" ]
# Start the container with a shell by default
CMD [ "/bin/bash" ]