We use cookies to make your experience better.
Learn how to best structure image specifications for use inside your organization.
Coder allows your organization to structure your image hierarchy however you'd like. However, we've seen organizations do well by defining a set of organization-wide base images from which all projects are created.
These base images extend common open-source base images. They also contain security patches, org-wide utilities, and configuration settings/information that individual project images will get by default when you create additional images. For example:
FROM ubuntu:20.04
# Install baseline packages
RUN apt-get update && DEBIAN_FRONTEND="noninteractive" apt-get install -y \
build-essential \
git \
bash \
curl \
wget \
unzip \
htop \
man \
vim \
sudo \
python3 \
python3-pip \
ca-certificates \
locales
# Add a user `coder` so that you're not developing as the `root` user
RUN adduser --gecos '' --disabled-password coder && \
echo "coder ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers.d/nopasswd
USER coder
Your users can then create descendant images. These contain all of the original tooling and configuration installed onto the base image and the new customizations added by the users.
Coder inserts static assets into each workspace, including:
These assets are installed into the /var/tmp/coder
directory of each
workspace. You do not need to include these static assets in your custom
images. However, the following software are required when you build custom
images:
2.1
The following utilities are optional:
See an opportunity to improve our docs? Make an edit.