mirror of https://github.com/requarks/wiki
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
1.8 KiB
64 lines
1.8 KiB
# Based of https://github.com/devcontainers/images/blob/main/src/javascript-node/.devcontainer/Dockerfile
|
|
|
|
ARG VARIANT=26
|
|
FROM node:${VARIANT}
|
|
|
|
ARG USERNAME=node
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
EXPOSE 3000
|
|
|
|
# Install the packages we need
|
|
RUN apt-get update && apt-get install -qy \
|
|
bash \
|
|
build-essential \
|
|
curl \
|
|
jq \
|
|
less \
|
|
git \
|
|
gnupg2 \
|
|
nano \
|
|
netcat-openbsd \
|
|
pandoc \
|
|
unzip \
|
|
wget
|
|
|
|
# Chromium, for the Puppeteer extension. Rendering a page on the server means driving a headless
|
|
# browser, and this is the copy Puppeteer is pointed at rather than one it downloads for itself:
|
|
# the distro keeps it patched, and it exists for arm64 as well as amd64.
|
|
#
|
|
# Its own RUN, and without recommends, because Chromium recommends a desktop stack -- an X server, a
|
|
# terminal emulator, usbmuxd -- that takes the package count from 61 to 177 and that nothing headless
|
|
# ever touches. The apt lists from the install above are still around, so no second update is needed.
|
|
RUN apt-get install -qy --no-install-recommends \
|
|
chromium \
|
|
fonts-liberation
|
|
|
|
# Where Puppeteer looks for a browser, and that it must not fetch a second one on install
|
|
ENV PUPPETEER_SKIP_DOWNLOAD=true
|
|
ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium
|
|
|
|
# avoid million NPM install messages
|
|
ENV npm_config_loglevel=warn
|
|
# disable NPM funding messages
|
|
ENV npm_config_fund=false
|
|
|
|
# Colorize the bash shell
|
|
RUN sed -i 's/#force_color_prompt=/force_color_prompt=/' /root/.bashrc
|
|
|
|
# Copy wait-for utility
|
|
COPY wait-for.sh /usr/local/bin/wait-for
|
|
RUN chmod +rx /usr/local/bin/wait-for
|
|
|
|
# Copy the startup file
|
|
COPY app-init.sh /docker-init.sh
|
|
RUN sed -i 's/\r$//' /docker-init.sh && \
|
|
chmod +x /docker-init.sh
|
|
|
|
# Create workspace
|
|
RUN mkdir -p /workspace
|
|
WORKDIR /workspace
|
|
|
|
ENV NODE_ENV=development
|