Files
homelab/infrastructure/graduated/fedora/arch-toolbox.containerfile
ducoterra 5af0fda759
Some checks failed
Reese's Arch Toolbox / build-and-push-arch-toolbox (push) Failing after 16s
organize fedora after expansion
2025-01-12 09:30:31 -05:00

119 lines
4.3 KiB
Docker

# Dockerfile for an Arch Linux Toolbox environment with a variety of development and utility tools.
# Base image using the latest version from quay.io/toolbx/arch-toolbox.
FROM quay.io/toolbx/arch-toolbox:latest
########################
##### Pacman #####
########################
# Enable multilib support by appending it to /etc/pacman.conf.
RUN tee -a /etc/pacman.conf <<EOF
[multilib]
Include = /etc/pacman.d/mirrorlist
EOF
# Set the architecture for Pacman manually to x86_64 since automatic detection might not work properly.
RUN sed -i 's/^Architecture = auto/Architecture = x86_64/' /etc/pacman.conf
# Sync repository databases.
RUN pacman -Sy --noconfirm
# Install a variety of commonly used tools and utilities using Pacman.
RUN pacman -S --noconfirm \
# A powerful shell with syntax highlighting, autosuggestions, and more.
zsh grml-zsh-config zsh-syntax-highlighting zsh-autosuggestions \
# Utility to find which packages own files or directories in the system.
pkgfile \
# Advanced text editor for code editing and other tasks.
vim \
# DNS name resolver
bind \
# Network bandwidth measuring tool.
iperf3 \
# Command-line interface for managing Kubernetes clusters.
kubectl \
# Package manager and deployment tool for Kubernetes.
helm \
# Utility to monitor real-time network usage of processes.
nethogs \
# Python programming language interpreter, pip package manager, and pipx for isolated package management.
python python-pip python-pipx \
# DevOps configuration management tool.
ansible \
# Terminal multiplexer.
tmux \
# Multimedia player with support for a wide range of codecs and file formats.
ffmpeg \
# Microsoft Windows compatibility layer.
wine \
# Container engine providing an interface that works similarly to Docker but is container format-agnostic.
podman \
# Archive utility similar to GNU tar, used to package files into single archive files.
unzip \
# An open source version of cat(1) with syntax highlighting and Git integration.
bat \
# A terminal activity monitor (top clone).
btop \
# Command-line JSON processor.
jq \
# YAML-based configuration-as-code tool for command-line interfaces written in Go, Rust, Python, and more.
yq \
# An image manipulation software suite based on ImageMagick.
imagemagick \
# Cross-platform JavaScript runtime built for developing the server-side of web applications.
nodejs npm \
# The Go programming language environment including a toolchain (gc) and libraries.
go \
# Rust package manager and compiler installation utility.
rust rustup \
# Distributed version control system, Git extension that adds support for large files like multimedia assets.
git-lfs \
# Framework to run desktop applications from the Linux AppImage format and other application bundles without installing them.
flatpak \
# Provides traditional network tools such as ifconfig, netstat, hostname, etc., in a single package.
net-tools \
# A cross-platform system monitor that works similarly to htop(1).
glances \
# Network manager tool
networkmanager \
# Document conversion tool and markup language converter.
pandoc \
# Comprehensive LaTeX distribution for high-quality typesetting of documents.
texlive-latex texlive-latexextra texlive-latexrecommended texlive-binextra texlive-fontsrecommended texlive-fontsextra \
# Visual Studio Code editor
code \
# Python static type checker and code formatter.
ruff \
# Generate strong passwords.
pwgen \
# Custom keyboard c onfiguration
qmk
########################
##### Extra Apps #####
########################
# Install UV, a tool for managing Python environments.
RUN curl -LsSf https://astral.sh/uv/install.sh | sh
# Install AWS CLI version 2.
RUN curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" && \
unzip -qq awscliv2.zip && \
./aws/install && \
rm awscliv2.zip && \
rm -rf aws
# Install yt-dlp, a command-line program for downloading YouTube videos.
RUN curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/youtube-dlp && \
chmod a+rx /usr/local/bin/youtube-dlp
####################
##### COPIES #####
####################
# Copy the zshrc.local configuration file to the container.
COPY zshrc /etc/zsh/zshrc.local
# Copy tmux.conf to configure tmux in the container.
COPY tmux.conf /etc/tmux.conf