Files
claudaris/Dockerfile
T
2026-07-12 10:11:02 -07:00

70 lines
1.9 KiB
Docker

FROM archlinux:latest
RUN pacman -Sy --noconfirm archlinux-keyring && \
pacman -Su --noconfirm && \
pacman -S --noconfirm --needed \
bash \
ca-certificates \
curl \
dart-sass \
fastfetch \
fzf \
git \
lazygit \
less \
mariadb-clients \
nodejs \
npm \
openssh \
php \
pwgen \
python \
redis \
sqlite \
tmux \
tree \
unzip \
uv \
vim \
zoxide && \
pacman -Scc --noconfirm
RUN printf '%s\n' \
'export PATH="/root/.local/bin:$PATH"' \
'eval "$(zoxide init bash)"' \
> /etc/profile.d/nix_path.sh && \
chmod 755 /etc/profile.d/nix_path.sh && \
echo '[ -f /etc/profile.d/nix_path.sh ] && . /etc/profile.d/nix_path.sh' >> /etc/bash.bashrc
RUN git config --system user.name "code" && \
git config --system user.email "code@4lt.ca" && \
git config --system --add safe.directory '*'
# Dotfiles
COPY files/bash_aliases /opt/dotfiles/bash_aliases
COPY files/bashrc /root/.bashrc
# Install Claude Code straight into /root, so a rebuild always picks up the
# latest release. Only the two files needed to stay logged in (not the CLI
# itself) are persisted across rebuilds, via individual bind mounts set up
# by `claudaris start` — see claudaris and AGENTS.md.
WORKDIR /tmp
RUN curl -fsSL https://claude.ai/install.sh | bash
# Claude Code usage statusline plugin
RUN PATH="/root/.local/bin:$PATH" bash -c \
'curl -fsSL https://raw.githubusercontent.com/leeguooooo/claude-code-usage-bar/main/web-install.sh | bash'
# tmux wrapper
COPY files/tmux /usr/local/bin/tmux
COPY files/tmux.conf /etc/tmux.conf
RUN chmod 755 /usr/local/bin/tmux
# Container entrypoint
COPY files/entrypoint.sh /usr/local/bin/entrypoint.sh
RUN chmod 755 /usr/local/bin/entrypoint.sh
WORKDIR /projects
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]