summaryrefslogtreecommitdiffstats
path: root/Dockerfile
diff options
context:
space:
mode:
authorLeonard Kugis <leonard@kug.is>2026-10-02 14:23:27 +0200
committerLeonard Kugis <leonard@kug.is>2026-10-02 14:23:27 +0200
commit9ad134bfcea12f6e8003e39b86882e2e530da2f8 (patch)
tree4d1fe1a2bd14bb954d96a81051d26471a5873a56 /Dockerfile
parent83a2cd1ac24ca0feda34ae877aaf31f41b58b86c (diff)
downloadaichat-9ad134bfcea12f6e8003e39b86882e2e530da2f8.tar.gz
Merged docker files into main repo
Diffstat (limited to 'Dockerfile')
-rw-r--r--Dockerfile38
1 files changed, 38 insertions, 0 deletions
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..6c55613
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,38 @@
+FROM rust:1-alpine AS builder
+RUN cargo install --locked aichat \
+ && cargo install --locked argc
+
+FROM alpine:3.21
+
+RUN apk add --no-cache \
+ bash ca-certificates curl git jq \
+ ripgrep fd \
+ unzip zip xz \
+ less nano vim tmux \
+ openssh-client-default \
+ python3 py3-pip py3-virtualenv \
+ nodejs npm \
+ build-base pkgconf cmake \
+ lynx tree \
+ pandoc-cli \
+ texlive texmf-dist-latexextra texmf-dist-langgerman \
+ poppler-utils \
+ tzdata
+
+RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | bash -s -- -y
+
+COPY --from=builder /usr/local/cargo/bin/aichat /usr/local/bin/aichat
+COPY --from=builder /usr/local/cargo/bin/argc /usr/local/bin/argc
+
+RUN addgroup -g 1000 dev \
+ && adduser -u 1000 -G dev -s /bin/bash -D dev \
+ && addgroup dev wheel \
+ && mkdir -p /work /projects /home/dev/.config \
+ && chown -R dev:dev /work /projects /home/dev
+
+USER dev
+
+ENV AICHAT_FUNCTIONS_DIR=/opt/llm-functions
+
+WORKDIR /work
+CMD ["bash"]