-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathContainerfile.fedora
51 lines (45 loc) · 2.62 KB
/
Containerfile.fedora
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
FROM fedora:41
ENV CMD_DNF_INSTALL="dnf install -y --setopt=install_weak_deps=false"
# Install useful tools.
## 'sudo' is required for the container to work as a Toolbox.
RUN ${CMD_DNF_INSTALL} dnf dnf-plugins-core dnf5 dnf5-plugins bash-completion clamav clamav-freshclam jq less man-db nano pciutils perl-Digest-SHA plocate rpm-ostree rsync sudo systemd tmate tmux vim
# Install compression tools.
RUN ${CMD_DNF_INSTALL} gzip p7zip p7zip-plugins unzip zip zstd
# Install network tools.
RUN ${CMD_DNF_INSTALL} curl dnsutils iproute iputils netcat nmap openssh-clients openssl wget
# Install programming languages and tools.
RUN ${CMD_DNF_INSTALL} @development-tools git git-review gcc golang make java-17-openjdk python3 python3-pip python3-virtualenv virtualenv
## GitHub CLI ('gh' command).
## https://github.com/cli/cli/blob/trunk/docs/install_linux.md
RUN dnf-3 config-manager --add-repo https://cli.github.com/packages/rpm/gh-cli.repo && ${CMD_DNF_INSTALL} gh --repo gh-cli && gh version
## Install programming language linters.
RUN ${CMD_DNF_INSTALL} python3-pylint shellcheck
# Install ZSH.
RUN ${CMD_DNF_INSTALL} zsh
# Install container engines.
RUN ${CMD_DNF_INSTALL} docker podman
# Sphinx for Root Pages documentation development.
RUN ${CMD_DNF_INSTALL} python3-sphinx python3-sphinx_rtd_theme
# Distrobox support.
## distrobox-init installs these packages. We pre-install them now so the container can start instantly.
## https://github.com/89luca89/distrobox/blob/1.7.2.1/distrobox-init#L665
RUN ${CMD_DNF_INSTALL} bash bash-completion bc bzip2 cracklib-dicts curl diffutils dnf-plugins-core findutils glibc-all-langpacks glibc-locale-source gnupg2 gnupg2-smime hostname iproute iputils keyutils krb5-libs less lsof man-db man-pages mtr ncurses nss-mdns openssh-clients pam passwd pigz pinentry procps-ng rsync shadow-utils sudo tcpdump time traceroute tree tzdata unzip util-linux vte-profile wget which whois words xorg-x11-xauth xz zip mesa-dri-drivers mesa-vulkan-drivers vulkan
# Azure CLI ("az" command).
RUN ${CMD_DNF_INSTALL} azure-cli
# code-server (Microsoft Visual Studio Code web server).
RUN curl -fsSL https://code-server.dev/install.sh | sh && code-server --version
# Install Linux distribution agnostic packages.
COPY distro-agnostic-tools.sh /usr/local/bin/
RUN /usr/local/bin/distro-agnostic-tools.sh
# Cleanup.
RUN dnf clean all
VOLUME ["/home_real"]
# code-server custom port (default is 8080).
EXPOSE 2003
# Toolbox support.
ENV NAME=lukeshortcloud-dev VERSION=rolling
LABEL com.github.containers.toolbox="true" \
name="$NAME" \
version="$VERSION"
RUN echo "%wheel ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/toolbox
CMD ["/bin/bash"]