From bc14edc85e55096fd8a32f68b573aa42dee04387 Mon Sep 17 00:00:00 2001 From: "Wyatt J. Miller" Date: Sat, 9 Mar 2024 23:07:32 -0500 Subject: [PATCH] reorginization of files, updated language containers --- README.md | 35 ++++++++++++++++--- base_container/Containerfile | 3 +- go_base_container/Containerfile | 6 ---- .../dotnet}/Containerfile | 0 .../dotnet/Containerfile.lts | 11 +++--- language-containers/golang/Containerfile | 21 +++++++++++ .../nodejs}/Containerfile | 12 +++---- .../nodejs/Containerfile.node18 | 21 +++++++++++ language-containers/rust/Containerfile | 20 +++++++++++ rust_base_container/Containerfile | 5 --- 10 files changed, 107 insertions(+), 27 deletions(-) delete mode 100644 go_base_container/Containerfile rename {dotnet_base_container => language-containers/dotnet}/Containerfile (100%) rename dotnet_lts_container/Containerfile => language-containers/dotnet/Containerfile.lts (62%) create mode 100644 language-containers/golang/Containerfile rename {base_node_container => language-containers/nodejs}/Containerfile (63%) create mode 100644 language-containers/nodejs/Containerfile.node18 create mode 100644 language-containers/rust/Containerfile delete mode 100644 rust_base_container/Containerfile diff --git a/README.md b/README.md index 0d3b732..233602b 100644 --- a/README.md +++ b/README.md @@ -10,16 +10,43 @@ The base container serves as the base for every other container in this reposito ## Language containers -TODO +This includes base language containers (with the base container mentioned above) if there's a need to start a project from scratch. + +What's included: +- Node.js container + - Node 20 is available + - Node 18 is coming soon +- Golang container +- Rust container +- .NET container + - .NET 7 and .NET 8 are included! + +What's on the roadmap: +- Python container +- OpenJDK (Java/Kotlin/Scala) container +- Kotlin (native) container +- Julia container +- Lua container +- Clojure container +- Zig container +- Nim container +- Deno container +- Bun container ## Specialty containers -TODO +Nothing is here yet but I'll likely create containers that could avoid the headache at some point. + +What's on the roadmap: +- Wine container ## Contribution -TODO +Feel free to send a PR containing a Containerfile (Dockerfile) and tell me what the container does! ## Attribution -TODO +Big thanks to the following projects: +- The Fedora Project +- Podman +- Toolbox diff --git a/base_container/Containerfile b/base_container/Containerfile index dce6cee..a4d56c4 100644 --- a/base_container/Containerfile +++ b/base_container/Containerfile @@ -13,7 +13,8 @@ LABEL com.github.containers.toolbox="true" \ version="$VERSION" \ usage="To be built upon with custom developer images" \ summary="Wyatt's custom base image" \ - maintainer="Wyatt J. Miller " + maintainer="Wyatt J. Miller " \ + vendor="Miller Web Solutions" # Install base development packages RUN dnf install neovim tmux git fish zsh bat exa -y -q diff --git a/go_base_container/Containerfile b/go_base_container/Containerfile deleted file mode 100644 index 692064d..0000000 --- a/go_base_container/Containerfile +++ /dev/null @@ -1,6 +0,0 @@ - -# Get my custom base image from scm -FROM localhost/base-container - -RUN dnf install golang -y -q -RUN fish -c "set -gx GOPATH /var/home/wyatt/Source/go/" diff --git a/dotnet_base_container/Containerfile b/language-containers/dotnet/Containerfile similarity index 100% rename from dotnet_base_container/Containerfile rename to language-containers/dotnet/Containerfile diff --git a/dotnet_lts_container/Containerfile b/language-containers/dotnet/Containerfile.lts similarity index 62% rename from dotnet_lts_container/Containerfile rename to language-containers/dotnet/Containerfile.lts index b2e75cc..ac9208d 100644 --- a/dotnet_lts_container/Containerfile +++ b/language-containers/dotnet/Containerfile.lts @@ -1,12 +1,12 @@ # .NET LTS development container image -# Written by Wyatt J. Miller, 2023 +# Written by Wyatt J. Miller, 2023, 2024 # This image is opinionated, but you're welcome to customize as much as you like -# Start with the Fedora 38 image -FROM registry.fedoraproject.org/fedora-toolbox:38 +# Start with the Fedora 39 image +FROM scm.wyattjmiller.com/wymiller/base_container:latest # Label it right, ya know? -ENV NAME=custom_dotnet_lts_image VERSION=1.0 +ENV NAME=custom_dotnet_lts_image VERSION=1.1 LABEL com.github.containers.toolbox="true" \ com.redhat.component="$NAME" \ name="$NAME" \ @@ -16,4 +16,5 @@ LABEL com.github.containers.toolbox="true" \ maintainer="Wyatt J. Miller " # Install .NET and related tools -RUN dnf install dotnet-sdk-6.0 dotnet-sdk-6.0 +RUN dnf install dotnet-sdk-8.0 dotnet-templates-8.0 +RUN fish -c "set -gx DOTNET_PATH $HOME/.dotnet/tools" diff --git a/language-containers/golang/Containerfile b/language-containers/golang/Containerfile new file mode 100644 index 0000000..4793c31 --- /dev/null +++ b/language-containers/golang/Containerfile @@ -0,0 +1,21 @@ +# Base Golang development image +# Written by Wyatt J. Miller, 2024 +# This image is opinionated, but you're welcome to customize as much as you like + +# Get my custom base image from scm +FROM scm.wyattjmiller.com/wymiller/base_container:latest + +# Label it right, ya know? +ENV NAME=custom_base_golang_image VERSION=1.0 +LABEL com.github.containers.toolbox="true" \ + com.redhat.component="$NAME" \ + name="$NAME" \ + version="$VERSION" \ + usage="Wyatt's base Golang image" \ + summary="Wyatt's custom base Golang image" \ + maintainer="Wyatt J. Miller " \ + vendor="Miller Web Solutions" + +# Download Golang and set the GOPATH +RUN dnf install golang -y -q +RUN fish -c "set -gx GOPATH /var/home/wyatt/Source/go/" diff --git a/base_node_container/Containerfile b/language-containers/nodejs/Containerfile similarity index 63% rename from base_node_container/Containerfile rename to language-containers/nodejs/Containerfile index 9b477ee..bb4c692 100644 --- a/base_node_container/Containerfile +++ b/language-containers/nodejs/Containerfile @@ -1,21 +1,21 @@ # Base Node.js container image -# Written by Wyatt J. Miller, 2023 +# Written by Wyatt J. Miller, 2023, 2024 # This image is opinionated, but you're welcome to customize as much as you like -# Start with the Fedora 38 image +# Start with the Fedora 39 image FROM scm.wyattjmiller.com/wymiller/base_container:latest # Label it right, ya know? -ENV NAME=custom_base_node_image VERSION=1.0 +ENV NAME=custom_base_node20_image VERSION=1.1 LABEL com.github.containers.toolbox="true" \ com.redhat.component="$NAME" \ name="$NAME" \ version="$VERSION" \ usage="Wyatt's base Node.js image" \ - summary="Wyatt's custom base Node image" \ - maintainer="Wyatt J. Miller " + summary="Wyatt's custom base Node 20 image" \ + maintainer="Wyatt J. Miller " \ + vendor="Miller Web Solutions" # Install base development packages RUN dnf install nodejs npm -y -q -RUN dnf clean all RUN npm install typescript -g diff --git a/language-containers/nodejs/Containerfile.node18 b/language-containers/nodejs/Containerfile.node18 new file mode 100644 index 0000000..29bb84a --- /dev/null +++ b/language-containers/nodejs/Containerfile.node18 @@ -0,0 +1,21 @@ +# Base Node.js container image +# Written by Wyatt J. Miller, 2023, 2024 +# This image is opinionated, but you're welcome to customize as much as you like + +# Start with the Fedora 39 image +FROM scm.wyattjmiller.com/wymiller/base_container:latest + +# Label it right, ya know? +ENV NAME=custom_base_node18_image VERSION=1.1 +LABEL com.github.containers.toolbox="true" \ + com.redhat.component="$NAME" \ + name="$NAME" \ + version="$VERSION" \ + usage="Wyatt's base Node.js image" \ + summary="Wyatt's custom base Node 18 image" \ + maintainer="Wyatt J. Miller " \ + vendor="Miller Web Solutions" + +# Install base development packages +RUN dnf install nodejs18 npm -y -q +RUN npm install typescript -g diff --git a/language-containers/rust/Containerfile b/language-containers/rust/Containerfile new file mode 100644 index 0000000..d9283c0 --- /dev/null +++ b/language-containers/rust/Containerfile @@ -0,0 +1,20 @@ +# Base Rust image +# Written by Wyatt J. Miller, 2024 +# This image is opinionated, but you're welcome to customize as much as you like + +# Get my custom base image from scm +FROM scm.wyattjmiller.com/wymiller/base_container:latest + +# Label it right, ya know? +ENV NAME=custom_base_rust_image VERSION=1.1 +LABEL com.github.containers.toolbox="true" \ + com.redhat.component="$NAME" \ + name="$NAME" \ + version="$VERSION" \ + usage="Wyatt's base Rust image" \ + summary="Wyatt's custom base Rust image" \ + maintainer="Wyatt J. Miller " \ + vendor="Miller Web Solutions" + +# Get latest Rust +RUN curl https://sh.rustup.rs -sSf | sh -s -- -y diff --git a/rust_base_container/Containerfile b/rust_base_container/Containerfile deleted file mode 100644 index cba676a..0000000 --- a/rust_base_container/Containerfile +++ /dev/null @@ -1,5 +0,0 @@ - -# Get my custom base image from scm -FROM localhost/base-container - -RUN curl https://sh.rustup.rs -sSf | sh -s -- -y