mirror of
https://github.com/YuzuZensai/Minikura.git
synced 2026-01-31 14:57:49 +00:00
79 lines
2.9 KiB
Docker
79 lines
2.9 KiB
Docker
|
|
FROM ubuntu:24.04
|
||
|
|
|
||
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
||
|
|
|
||
|
|
# Install base packages
|
||
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||
|
|
openssh-server \
|
||
|
|
passwd \
|
||
|
|
sudo \
|
||
|
|
curl \
|
||
|
|
wget \
|
||
|
|
git \
|
||
|
|
jq \
|
||
|
|
unzip \
|
||
|
|
ca-certificates \
|
||
|
|
gnupg \
|
||
|
|
lsb-release \
|
||
|
|
iptables \
|
||
|
|
iproute2 \
|
||
|
|
postgresql-client \
|
||
|
|
apt-transport-https \
|
||
|
|
software-properties-common \
|
||
|
|
&& rm -rf /var/lib/apt/lists/*
|
||
|
|
|
||
|
|
# Install Node.js 24
|
||
|
|
RUN curl -fsSL https://deb.nodesource.com/setup_24.x | bash - \
|
||
|
|
&& apt-get install -y --no-install-recommends nodejs \
|
||
|
|
&& rm -rf /var/lib/apt/lists/*
|
||
|
|
|
||
|
|
# Install Bun
|
||
|
|
RUN curl -fsSL https://bun.sh/install | bash \
|
||
|
|
&& mv /root/.bun/bin/bun /usr/local/bin/ \
|
||
|
|
&& ln -s /usr/local/bin/bun /usr/local/bin/bunx
|
||
|
|
|
||
|
|
# Install Docker
|
||
|
|
RUN curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg \
|
||
|
|
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list \
|
||
|
|
&& apt-get update \
|
||
|
|
&& apt-get install -y --no-install-recommends docker-ce docker-ce-cli containerd.io docker-compose-plugin \
|
||
|
|
&& rm -rf /var/lib/apt/lists/*
|
||
|
|
|
||
|
|
# Install kubectl
|
||
|
|
RUN curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/$(dpkg --print-architecture)/kubectl" \
|
||
|
|
&& install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl \
|
||
|
|
&& rm kubectl
|
||
|
|
|
||
|
|
# Install Helm
|
||
|
|
RUN curl -fsSL https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash
|
||
|
|
|
||
|
|
# Enable systemd
|
||
|
|
RUN find /lib/systemd/system/sysinit.target.wants -mindepth 1 -not -name "systemd-tmpfiles-setup.service" -delete; \
|
||
|
|
find /lib/systemd/system/multi-user.target.wants -mindepth 1 -not -name "systemd-user-sessions.service" -delete; \
|
||
|
|
rm -f /etc/systemd/system/*.wants/*; \
|
||
|
|
rm -f /lib/systemd/system/local-fs.target.wants/*; \
|
||
|
|
rm -f /lib/systemd/system/sockets.target.wants/*udev*; \
|
||
|
|
rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \
|
||
|
|
rm -f /lib/systemd/system/basic.target.wants/*; \
|
||
|
|
rm -f /lib/systemd/system/anaconda.target.wants/*;
|
||
|
|
|
||
|
|
# Create dev user with host UID/GID for seamless file permissions
|
||
|
|
ARG HOST_UID=1000
|
||
|
|
ARG HOST_GID=1000
|
||
|
|
RUN userdel -r $(getent passwd ${HOST_UID} | cut -d: -f1) 2>/dev/null || true && \
|
||
|
|
groupdel $(getent group ${HOST_GID} | cut -d: -f1) 2>/dev/null || true && \
|
||
|
|
groupadd -g ${HOST_GID} dev && \
|
||
|
|
useradd -m -s /bin/bash -u ${HOST_UID} -g ${HOST_GID} dev && \
|
||
|
|
echo "dev:dev" | chpasswd && \
|
||
|
|
echo 'dev ALL=(ALL) NOPASSWD: ALL' > /etc/sudoers.d/dev && \
|
||
|
|
chmod 440 /etc/sudoers.d/dev && \
|
||
|
|
usermod -aG docker dev
|
||
|
|
|
||
|
|
# Setup directories
|
||
|
|
RUN mkdir -p /home/dev/.kube && chown -R dev:dev /home/dev
|
||
|
|
|
||
|
|
WORKDIR /workspace
|
||
|
|
|
||
|
|
VOLUME [ "/sys/fs/cgroup" ]
|
||
|
|
CMD ["/usr/sbin/init"]
|