# 1. A: Define a base image # FROM scratch # FROM busybox # FROM alpine:3.22.1 # FROM alpine:latest # FROM python:3.12 # FROM debian:bookworm-slim FROM nginx # 1. B: Set ENV Variables ENV TERM=xterm-256color # 2. Set the working directory inside the container RUN groupadd -g 1000 abaddon RUN useradd -u 1000 -g 1000 -r -s /bin/false abaddon RUN mkdir -p /home/abaddon/Code RUN mkdir -p /home/abaddon/Downloads RUN mkdir -p /home/abaddon/LazyShare RUN mkdir -p /home/abaddon/.local RUN mkdir -p /home/abaddon/.config RUN mkdir -p /home/abaddon/.cache RUN mkdir -p /home/abaddon/.thumbnails # 3. A: Install dependencies RUN apt-get update RUN apt-get install -y \ --no-install-recommends \ --no-install-suggests \ pkg-config \ ca-certificates \ libreadline-dev \ liblzma-dev \ libsqlite3-dev \ libncurses5-dev \ libncursesw5-dev \ libgirepository1.0-dev \ libssl-dev libcairo2-dev \ libgdk-pixbuf-xlib-2.0-0 \ python3-gi gir1.2-gtk-3.0 \ gir1.2-gdkpixbuf-2.0 \ bash-completion \ parallel \ bat \ 7zip \ zip \ tar \ curl \ wget \ fzf \ less \ tree \ ripgrep \ htop \ nano \ git \ ranger # 4. Copy files over # 5. Cleanup RUN apt-get autoremove --purge RUN apt-get autoclean RUN rm -rf /tmp/* # 6. Expose Port and define the command used to run the app EXPOSE 80 EXPOSE 443 CMD ["bash"]