Pin ubuntu:22.04 to its current manifest digest to ensure reproducible builds and prevent supply-chain mutations. Closes #513 Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
34 lines
1.1 KiB
Docker
34 lines
1.1 KiB
Docker
FROM ubuntu:22.04@sha256:c7eb020043d8fc2ae0793fb35a37bff1cf33f156d4d4b12ccc7f3ef8706c38b1
|
|
|
|
# Prevent interactive prompts during package installation
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
# Install common development tools and runtimes
|
|
# - Node.js: Install v20 (LTS) from NodeSource
|
|
# - Core: curl, git, vim, build-essential (gcc, make)
|
|
# - Python: python3, pip
|
|
# - Network: ping, dnsutils
|
|
RUN apt-get update && apt-get install -y curl && \
|
|
curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && \
|
|
apt-get install -y \
|
|
nodejs \
|
|
wget git vim nano unzip zip \
|
|
build-essential \
|
|
python3 python3-pip \
|
|
sudo \
|
|
iputils-ping dnsutils net-tools \
|
|
&& rm -rf /var/lib/apt/lists/* \
|
|
&& node --version && npm --version
|
|
|
|
# Create a non-root user 'developer' with UID 1000
|
|
# Grant passwordless sudo to simulate a local dev environment (using safe sudoers.d)
|
|
RUN useradd -m -s /bin/bash -u 1000 developer && \
|
|
echo "developer ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/developer && \
|
|
chmod 0440 /etc/sudoers.d/developer
|
|
|
|
# Set up the workspace
|
|
USER developer
|
|
WORKDIR /home/developer/workspace
|
|
|
|
# Default command
|
|
CMD ["/bin/bash"]
|