mirror of
https://github.com/getcompanion-ai/computer-guest.git
synced 2026-04-15 04:03:25 +00:00
70 lines
2.5 KiB
Docker
70 lines
2.5 KiB
Docker
FROM public.ecr.aws/docker/library/ubuntu:24.04
|
|
|
|
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
ARG MICROAGENT_TEST_AUTHORIZED_KEY=""
|
|
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
ca-certificates \
|
|
curl \
|
|
dbus-x11 \
|
|
eza \
|
|
fonts-dejavu-core \
|
|
git \
|
|
iproute2 \
|
|
jitterentropy-rngd \
|
|
net-tools \
|
|
ncurses-bin \
|
|
novnc \
|
|
openbox \
|
|
openssh-server \
|
|
sudo \
|
|
zsh \
|
|
zsh-autosuggestions \
|
|
zsh-syntax-highlighting \
|
|
websockify \
|
|
x11-utils \
|
|
x11-xserver-utils \
|
|
x11vnc \
|
|
xauth \
|
|
xterm \
|
|
xvfb \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
RUN useradd --create-home --shell /bin/bash node \
|
|
&& passwd -d node \
|
|
&& mkdir -p /home/node/.ssh \
|
|
&& chown -R node:node /home/node \
|
|
&& usermod -aG sudo node \
|
|
&& printf 'node ALL=(ALL) NOPASSWD:ALL\n' >/etc/sudoers.d/node \
|
|
&& chmod 440 /etc/sudoers.d/node \
|
|
&& install -d -m 0755 /etc/microagent
|
|
|
|
COPY docker/guest/sshd_config /etc/ssh/sshd_config
|
|
COPY docker/guest/microagent-init.sh /usr/local/bin/microagent-init
|
|
COPY docker/guest/microagent-desktop-session.sh /usr/local/bin/microagent-desktop-session
|
|
COPY docker/guest/microagent-network-up.sh /usr/local/bin/microagent-network-up
|
|
COPY docker/guest/defaults/.zshrc /home/node/.zshrc
|
|
COPY docker/guest/defaults/.bashrc /home/node/.bashrc
|
|
COPY docker/guest/defaults/.profile /home/node/.profile
|
|
COPY docker/guest/terminfo/xterm-ghostty.terminfo /tmp/xterm-ghostty.terminfo
|
|
COPY docker/guest/terminfo/xterm-kitty.terminfo /tmp/xterm-kitty.terminfo
|
|
|
|
RUN chmod 755 /usr/local/bin/microagent-init /usr/local/bin/microagent-desktop-session /usr/local/bin/microagent-network-up \
|
|
&& chown node:node /home/node/.zshrc /home/node/.bashrc /home/node/.profile \
|
|
&& usermod -s /usr/bin/zsh node \
|
|
&& install -d /opt/zsh/pure \
|
|
&& ln -sf /usr/local/bin/microagent-init /sbin/init \
|
|
&& curl -fsSL https://raw.githubusercontent.com/sindresorhus/pure/v1.27.0/pure.zsh -o /opt/zsh/pure/pure.zsh \
|
|
&& curl -fsSL https://raw.githubusercontent.com/sindresorhus/pure/v1.27.0/async.zsh -o /opt/zsh/pure/async.zsh \
|
|
&& tic -x -o /usr/share/terminfo /tmp/xterm-ghostty.terminfo \
|
|
&& tic -x -o /usr/share/terminfo /tmp/xterm-kitty.terminfo \
|
|
&& rm -f /tmp/xterm-ghostty.terminfo /tmp/xterm-kitty.terminfo
|
|
|
|
RUN if [ -n "$MICROAGENT_TEST_AUTHORIZED_KEY" ]; then \
|
|
printf '%s\n' "$MICROAGENT_TEST_AUTHORIZED_KEY" >/etc/microagent/authorized_keys; \
|
|
chmod 600 /etc/microagent/authorized_keys; \
|
|
fi
|
|
|
|
CMD ["/usr/local/bin/microagent-init"]
|