Files
Agent-System-Dev/docker/Dockerfile
T

51 lines
2.0 KiB
Docker

FROM --platform=linux/amd64 ubuntu:24.04
ENV DEBIAN_FRONTEND=noninteractive
ENV PLAYWRIGHT_BROWSERS_PATH=/opt/ms-playwright
ENV PATH=/usr/local/go/bin:/usr/local/lib/nodejs/node-v26.10.0-linux-x64/bin:${PATH}
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
ca-certificates \
curl \
git \
libatomic1 \
make \
openssh-server \
sudo \
xz-utils \
software-properties-common \
&& add-apt-repository -y ppa:deadsnakes/ppa \
&& apt-get update \
&& apt-get install -y --no-install-recommends \
python3.14 \
python3.14-venv \
&& python3.14 -m ensurepip --upgrade \
&& ln -sf /usr/bin/python3.14 /usr/local/bin/python3 \
&& ln -sf /usr/bin/python3.14 /usr/local/bin/python \
&& rm -rf /var/lib/apt/lists/*
RUN curl -fsSL https://go.dev/dl/go1.27.1.linux-amd64.tar.gz -o /tmp/go1.27.1.linux-amd64.tar.gz \
&& rm -rf /usr/local/go \
&& tar -C /usr/local -xzf /tmp/go1.27.1.linux-amd64.tar.gz \
&& curl -fsSL https://nodejs.org/dist/v26.10.0/node-v26.10.0-linux-x64.tar.xz -o /tmp/node-v26.10.0-linux-x64.tar.xz \
&& mkdir -p /usr/local/lib/nodejs \
&& tar -C /usr/local/lib/nodejs -xJf /tmp/node-v26.10.0-linux-x64.tar.xz \
&& npx -y playwright@1.64.0 install --with-deps chromium \
&& rm -f /tmp/go1.27.1.linux-amd64.tar.gz /tmp/node-v26.10.0-linux-x64.tar.xz \
&& rm -rf /var/lib/apt/lists/*
RUN userdel -r ubuntu 2>/dev/null || true \
&& groupdel ubuntu 2>/dev/null || true \
&& groupadd --gid 1000 dev \
&& useradd --uid 1000 --gid 1000 --create-home --shell /bin/bash dev \
&& echo "dev ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/dev \
&& chmod 0440 /etc/sudoers.d/dev \
&& printf '\nPermitRootLogin no\nPasswordAuthentication no\nPubkeyAuthentication yes\n' >> /etc/ssh/sshd_config
COPY --chmod=755 entrypoint.sh /usr/local/bin/entrypoint.sh
COPY --chmod=755 verify-env.sh /usr/local/bin/verify-env.sh
EXPOSE 22
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]