46 lines
1.6 KiB
Docker
46 lines
1.6 KiB
Docker
FROM ubuntu:24.04
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
ENV HOME=/root
|
|
ENV PATH="/usr/local/bin:/root/.bun/bin:$PATH"
|
|
|
|
# Base tools
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
curl wget git openssh-server ca-certificates gnupg \
|
|
build-essential unzip zip jq tmux zsh ripgrep \
|
|
postgresql-client redis-tools haproxy \
|
|
nano vim htop netcat-openbsd dnsutils iputils-ping \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Bun — install to /usr/local so it's on the image filesystem, not the /root PVC
|
|
RUN curl -fsSL https://bun.sh/install | bash -s -- --install-dir /usr/local/bin \
|
|
&& ln -sf /usr/local/bin/bun /usr/local/bin/bunx
|
|
|
|
# code-server (VS Code in browser)
|
|
RUN curl -fsSL https://code-server.dev/install.sh | sh
|
|
|
|
# kubectl
|
|
RUN curl -fsSL "https://dl.k8s.io/release/$(curl -fsSL https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" \
|
|
-o /usr/local/bin/kubectl && chmod +x /usr/local/bin/kubectl
|
|
|
|
# doctl
|
|
RUN curl -fsSL https://github.com/digitalocean/doctl/releases/download/v1.119.0/doctl-1.119.0-linux-amd64.tar.gz \
|
|
| tar xz -C /usr/local/bin
|
|
|
|
# helm
|
|
RUN curl -fsSL https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
|
|
|
|
# k9s
|
|
RUN curl -fsSL https://github.com/derailed/k9s/releases/latest/download/k9s_Linux_amd64.tar.gz \
|
|
| tar xz -C /usr/local/bin k9s
|
|
|
|
# SSH setup — host keys generated at runtime via entrypoint
|
|
RUN mkdir -p /run/sshd /root/.ssh && chmod 700 /root/.ssh
|
|
|
|
COPY entrypoint-devpod.sh /entrypoint.sh
|
|
RUN chmod +x /entrypoint.sh
|
|
|
|
WORKDIR /root
|
|
EXPOSE 8080 22
|
|
ENTRYPOINT ["/entrypoint.sh"]
|