Compare commits
24 Commits
wm/base-co
...
bind-dns-s
Author | SHA1 | Date | |
---|---|---|---|
b3a8eb89ea | |||
cd4400ffba | |||
eaefe9d8c3 | |||
61d966b65e | |||
8e846870b4 | |||
ccd0be99ba | |||
9e6bd0e298 | |||
5ea3a90343 | |||
bcf02a056f | |||
702d2b8890 | |||
44132ee907 | |||
2e11e2a2f0 | |||
1287ed35c1 | |||
1e5c7ccc5c | |||
e3d66b535e | |||
1f13ff3a05 | |||
6c57c07b4b | |||
e808e19415 | |||
8352242242 | |||
0b293a678e | |||
e8b59e9c1c | |||
a9392ea302 | |||
0efa8bcce9 | |||
36aea4fb0c |
39
.github/workflows/build.yml
vendored
Normal file
39
.github/workflows/build.yml
vendored
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
name: Docker Build and Publish
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
paths:
|
||||||
|
- "**/Containerfile"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build_and_publish:
|
||||||
|
name: Build and Publish Docker Image
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Get Dockerfile image name
|
||||||
|
id: get_image_name
|
||||||
|
run: |
|
||||||
|
IMAGE_NAME=$(grep -Po '(?<=name=")[^"]*' Containerfile)
|
||||||
|
echo "::set-output name=image_name::$IMAGE_NAME"
|
||||||
|
|
||||||
|
- name: Login to container registry
|
||||||
|
run: docker login -u ${{ secrets.REGISTRY_USERNAME }} -p ${{ secrets.REGISTRY_PASSWORD }} scm.wyattjmiller.com
|
||||||
|
|
||||||
|
- name: Check for Dockerfile changes
|
||||||
|
id: dockerfile_changed
|
||||||
|
run: |
|
||||||
|
if git diff --name-only ${{ github.event.before }} ${{ github.sha }} | grep '^Containerfile$'; then
|
||||||
|
echo "::set-output name=changed::true"
|
||||||
|
else
|
||||||
|
echo "::set-output name=changed::false"
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Build and Publish Docker image
|
||||||
|
if: steps.dockerfile_changed.outputs.changed == 'true'
|
||||||
|
run: |
|
||||||
|
docker build -t scm.wyattjmiller.com/${{ steps.get_image_name.outputs.image_name }}:${{ github.sha }} .
|
||||||
|
docker push scm.wyattjmiller.com/${{ steps.get_image_name.outputs.image_name }}:${{ github.sha }}
|
23
README.md
23
README.md
@ -14,30 +14,31 @@ This includes base language containers (with the base container mentioned above)
|
|||||||
|
|
||||||
What's included:
|
What's included:
|
||||||
- Node.js container
|
- Node.js container
|
||||||
- Node 20 is available
|
- Node 20 and Node 18 are available
|
||||||
- Node 18 is coming soon
|
- Deno (latest) container
|
||||||
- Golang container
|
- Golang (latest) container
|
||||||
- Rust container
|
- Rust (latest) container
|
||||||
- .NET container
|
- .NET container
|
||||||
- .NET 7 and .NET 8 are included!
|
- .NET 7 and .NET 8 are available
|
||||||
|
- Powershell is included with the container
|
||||||
|
- Java container
|
||||||
|
- Java 11, 17, 21 are available
|
||||||
|
- Kotlin (latest) container
|
||||||
|
|
||||||
What's on the roadmap:
|
What's on the roadmap:
|
||||||
- Python container
|
- Python container
|
||||||
- OpenJDK (Java/Kotlin/Scala) container
|
- Python 3.12, 3.11, 3.10, and 3.9 will be included
|
||||||
- Kotlin (native) container
|
|
||||||
- Julia container
|
- Julia container
|
||||||
- Lua container
|
- Lua container
|
||||||
|
- Only Lua 5.3 will be included
|
||||||
- Clojure container
|
- Clojure container
|
||||||
- Zig container
|
- Zig container
|
||||||
- Nim container
|
- Nim container
|
||||||
- Deno container
|
|
||||||
- Bun container
|
- Bun container
|
||||||
|
|
||||||
## Specialty containers
|
## Specialty containers
|
||||||
|
|
||||||
Nothing is here yet but I'll likely create containers that could avoid the headache at some point.
|
What's included:
|
||||||
|
|
||||||
What's on the roadmap:
|
|
||||||
- Wine container
|
- Wine container
|
||||||
|
|
||||||
## Contribution
|
## Contribution
|
||||||
|
@ -2,11 +2,11 @@
|
|||||||
# Written by Wyatt J. Miller, 2023, 2024
|
# Written by Wyatt J. Miller, 2023, 2024
|
||||||
# This image is opinionated, but you're welcome to customize as much as you like
|
# This image is opinionated, but you're welcome to customize as much as you like
|
||||||
|
|
||||||
# Start with the Fedora 39 image
|
# Start with the Fedora 40 image
|
||||||
FROM registry.fedoraproject.org/fedora-toolbox:39
|
FROM registry.fedoraproject.org/fedora-toolbox:40
|
||||||
|
|
||||||
# Label it right, ya know?
|
# Label it right, ya know?
|
||||||
ENV NAME=custom_base_image VERSION=1.1
|
ENV NAME=base_container VERSION=1.3
|
||||||
LABEL com.github.containers.toolbox="true" \
|
LABEL com.github.containers.toolbox="true" \
|
||||||
com.redhat.component="$NAME" \
|
com.redhat.component="$NAME" \
|
||||||
name="$NAME" \
|
name="$NAME" \
|
||||||
@ -17,20 +17,25 @@ LABEL com.github.containers.toolbox="true" \
|
|||||||
vendor="Miller Web Solutions"
|
vendor="Miller Web Solutions"
|
||||||
|
|
||||||
# Install base development packages
|
# Install base development packages
|
||||||
RUN dnf install neovim tmux git fish zsh bat exa -y -q
|
RUN dnf copr enable atim/starship -y -q
|
||||||
|
RUN dnf copr enable varlad/zellij -y -q
|
||||||
|
RUN dnf install neovim tmux git fish zsh bat exa starship zellij wget unzip ansible htop iftop -y -q
|
||||||
RUN dnf groupinstall "C Development Tools and Libraries" -y -q
|
RUN dnf groupinstall "C Development Tools and Libraries" -y -q
|
||||||
|
|
||||||
# Install starship prompt (to the moon!)
|
|
||||||
RUN curl -sS https://starship.rs/install.sh | sh -s -- -y
|
|
||||||
|
|
||||||
# Install atuin (magical shell history)
|
# Install atuin (magical shell history)
|
||||||
RUN curl -L https://github.com/atuinsh/atuin/releases/download/v18.0.2/atuin-v18.0.2-x86_64-unknown-linux-gnu.tar.gz --output atuin-v18.0.2-x86_64-unknown-linux-gnu.tar.gz
|
RUN curl -L https://github.com/atuinsh/atuin/releases/download/v18.2.0/atuin-v18.2.0-x86_64-unknown-linux-gnu.tar.gz --output atuin-v18.2.0-x86_64-unknown-linux-gnu.tar.gz
|
||||||
RUN tar xvzf atuin-v18.0.2-x86_64-unknown-linux-gnu.tar.gz
|
RUN tar xvzf atuin-v18.2.0-x86_64-unknown-linux-gnu.tar.gz
|
||||||
RUN cp ./atuin-v18.0.2-x86_64-unknown-linux-gnu/atuin /usr/local/bin/atuin
|
RUN cp ./atuin-v18.2.0-x86_64-unknown-linux-gnu/atuin /usr/local/bin/atuin
|
||||||
RUN rm -rf atuin-v18.0.2-x86_64-unknown-linux-gnu/
|
RUN rm -rf atuin-v18.2.0-x86_64-unknown-linux-gnu/
|
||||||
|
|
||||||
# Install lazygit (don't you know??)
|
# Install lazygit (don't you know??)
|
||||||
RUN curl -L https://github.com/jesseduffield/lazygit/releases/download/v0.40.2/lazygit_0.40.2_Linux_x86_64.tar.gz --output lazygit_0.40.2_Linux_x86_64.tar.gz
|
RUN curl -L https://github.com/jesseduffield/lazygit/releases/download/v0.41.0/lazygit_0.41.0_Linux_x86_64.tar.gz --output lazygit_0.41.0_Linux_x86_64.tar.gz
|
||||||
RUN tar xvzf lazygit_0.40.2_Linux_x86_64.tar.gz
|
RUN tar xvzf lazygit_0.41.0_Linux_x86_64.tar.gz
|
||||||
RUN cp ./lazygit /usr/local/bin/lazygit
|
RUN cp ./lazygit /usr/local/bin/lazygit
|
||||||
RUN rm LICENSE README.md lazygit
|
RUN rm LICENSE README.md lazygit
|
||||||
|
|
||||||
|
# Install smug (a tmux manager)
|
||||||
|
RUN curl -L https://github.com/ivaaaan/smug/releases/download/v0.3.3/smug_0.3.3_Linux_x86_64.tar.gz --output smug_0.3.3_Linux_x86_64.tar.gz
|
||||||
|
RUN tar xvzf smug_0.3.3_Linux_x86_64.tar.gz
|
||||||
|
RUN cp ./smug /usr/local/bin/smug
|
||||||
|
RUN rm LICENSE README.md smug
|
||||||
|
21
language-containers/deno/Containerfile
Normal file
21
language-containers/deno/Containerfile
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# Base Deno container image
|
||||||
|
# Written by Wyatt J. Miller, 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_deno_image VERSION=1.0
|
||||||
|
LABEL com.github.containers.toolbox="true" \
|
||||||
|
com.redhat.component="$NAME" \
|
||||||
|
name="$NAME" \
|
||||||
|
version="$VERSION" \
|
||||||
|
usage="Wyatt's base Deno image" \
|
||||||
|
summary="Wyatt's custom base Deno (latest) image" \
|
||||||
|
maintainer="Wyatt J. Miller <wyatt@wyattjmiller.com>" \
|
||||||
|
vendor="Miller Web Solutions"
|
||||||
|
|
||||||
|
# Install deno
|
||||||
|
ENV DENO_INSTALL="/usr/local"
|
||||||
|
RUN curl -fsSL https://deno.land/install.sh | sh
|
@ -3,7 +3,7 @@
|
|||||||
# This image is opinionated, but you're welcome to customize as much as you like
|
# 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 38 image
|
||||||
FROM registry.fedoraproject.org/fedora-toolbox:38
|
FROM scm.wyattjmiller.com/wymiller/base_container:latest
|
||||||
|
|
||||||
# Label it right, ya know?
|
# Label it right, ya know?
|
||||||
ENV NAME=custom_dotnet_base_image VERSION=1.0
|
ENV NAME=custom_dotnet_base_image VERSION=1.0
|
||||||
@ -17,3 +17,4 @@ LABEL com.github.containers.toolbox="true" \
|
|||||||
|
|
||||||
# Install .NET and related tools
|
# Install .NET and related tools
|
||||||
RUN dnf install dotnet-sdk-7.0 dotnet-templates-7.0
|
RUN dnf install dotnet-sdk-7.0 dotnet-templates-7.0
|
||||||
|
RUN dotnet tool install --global PowerShell
|
||||||
|
@ -17,4 +17,4 @@ LABEL com.github.containers.toolbox="true" \
|
|||||||
|
|
||||||
# Install .NET and related tools
|
# Install .NET and related tools
|
||||||
RUN dnf install dotnet-sdk-8.0 dotnet-templates-8.0
|
RUN dnf install dotnet-sdk-8.0 dotnet-templates-8.0
|
||||||
RUN fish -c "set -gx DOTNET_PATH $HOME/.dotnet/tools"
|
RUN dotnet tool install --global PowerShell
|
||||||
|
31
language-containers/java/Containerfile
Normal file
31
language-containers/java/Containerfile
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
# Java 21 development container image
|
||||||
|
# Written by Wyatt J. Miller, 2023
|
||||||
|
# This image is opinionated, but you're welcome to customize as much as you like
|
||||||
|
|
||||||
|
# Start with the Fedora 39 custom image
|
||||||
|
FROM scm.wyattjmiller.com/wymiller/base_container:latest
|
||||||
|
|
||||||
|
# Label it right, ya know?
|
||||||
|
ENV NAME=custom_java_21_base_image VERSION=1.0
|
||||||
|
LABEL com.github.containers.toolbox="true" \
|
||||||
|
com.redhat.component="$NAME" \
|
||||||
|
name="$NAME" \
|
||||||
|
version="$VERSION" \
|
||||||
|
usage="Java currrent custom developer images" \
|
||||||
|
summary="Wyatt's custom Java 21 image" \
|
||||||
|
maintainer="Wyatt J. Miller <wyatt@wyattjmiller.com>" \
|
||||||
|
vendor="Miller Web Solutions"
|
||||||
|
|
||||||
|
# Set environment variables
|
||||||
|
ENV GRADLE_VERSION=8.6
|
||||||
|
ENV GRADLE_HOME=/opt/gradle
|
||||||
|
ENV PATH="${PATH}:${GRADLE_HOME}/bin"
|
||||||
|
|
||||||
|
# Install the latest Java and the latest Java development files
|
||||||
|
RUN dnf install java-21-openjdk java-21-openjdk-devel -y -q && dnf clean all
|
||||||
|
|
||||||
|
# Download and install Gradle
|
||||||
|
RUN wget -q "https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip" -O gradle.zip && \
|
||||||
|
unzip -q gradle.zip -d /opt && \
|
||||||
|
mv "/opt/gradle-${GRADLE_VERSION}" "${GRADLE_HOME}" && \
|
||||||
|
rm gradle.zip
|
31
language-containers/java/Containerfile.java11
Normal file
31
language-containers/java/Containerfile.java11
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
# Java 11 development container image
|
||||||
|
# Written by Wyatt J. Miller, 2024
|
||||||
|
# This image is opinionated, but you're welcome to customize as much as you like
|
||||||
|
|
||||||
|
# Start with the Fedora 39 custom image
|
||||||
|
FROM scm.wyattjmiller.com/wymiller/base_container:latest
|
||||||
|
|
||||||
|
# Label it right, ya know?
|
||||||
|
ENV NAME=custom_java_11_base_image VERSION=1.0
|
||||||
|
LABEL com.github.containers.toolbox="true" \
|
||||||
|
com.redhat.component="$NAME" \
|
||||||
|
name="$NAME" \
|
||||||
|
version="$VERSION" \
|
||||||
|
usage="Java currrent custom developer images" \
|
||||||
|
summary="Wyatt's custom Java 11 image" \
|
||||||
|
maintainer="Wyatt J. Miller <wyatt@wyattjmiller.com>" \
|
||||||
|
vendor="Miller Web Solutions"
|
||||||
|
|
||||||
|
# Set environment variables
|
||||||
|
ENV GRADLE_VERSION=8.6
|
||||||
|
ENV GRADLE_HOME=/opt/gradle
|
||||||
|
ENV PATH="${PATH}:${GRADLE_HOME}/bin"
|
||||||
|
|
||||||
|
# Install Java 11 and Java 11 development files
|
||||||
|
RUN dnf install java-11-openjdk java-11-openjdk-devel -y -q && dnf clean all
|
||||||
|
|
||||||
|
# Download and install Gradle
|
||||||
|
RUN wget -q "https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip" -O gradle.zip && \
|
||||||
|
unzip -q gradle.zip -d /opt && \
|
||||||
|
mv "/opt/gradle-${GRADLE_VERSION}" "${GRADLE_HOME}" && \
|
||||||
|
rm gradle.zip
|
31
language-containers/java/Containerfile.java17
Normal file
31
language-containers/java/Containerfile.java17
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
# Java 17 development container image
|
||||||
|
# Written by Wyatt J. Miller, 2024
|
||||||
|
# This image is opinionated, but you're welcome to customize as much as you like
|
||||||
|
|
||||||
|
# Start with the Fedora 39 custom image
|
||||||
|
FROM scm.wyattjmiller.com/wymiller/base_container:latest
|
||||||
|
|
||||||
|
# Label it right, ya know?
|
||||||
|
ENV NAME=custom_java_17_base_image VERSION=1.0
|
||||||
|
LABEL com.github.containers.toolbox="true" \
|
||||||
|
com.redhat.component="$NAME" \
|
||||||
|
name="$NAME" \
|
||||||
|
version="$VERSION" \
|
||||||
|
usage="Java currrent custom developer images" \
|
||||||
|
summary="Wyatt's custom Java 17 image" \
|
||||||
|
maintainer="Wyatt J. Miller <wyatt@wyattjmiller.com>" \
|
||||||
|
vendor="Miller Web Solutions"
|
||||||
|
|
||||||
|
# Set environment variables
|
||||||
|
ENV GRADLE_VERSION=8.6
|
||||||
|
ENV GRADLE_HOME=/opt/gradle
|
||||||
|
ENV PATH="${PATH}:${GRADLE_HOME}/bin"
|
||||||
|
|
||||||
|
# Install Java 17 and Java 17 development files
|
||||||
|
RUN dnf install java-17-openjdk java-17-openjdk-devel -y -q && dnf clean all
|
||||||
|
|
||||||
|
# Download and install Gradle
|
||||||
|
RUN wget -q "https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip" -O gradle.zip && \
|
||||||
|
unzip -q gradle.zip -d /opt && \
|
||||||
|
mv "/opt/gradle-${GRADLE_VERSION}" "${GRADLE_HOME}" && \
|
||||||
|
rm gradle.zip
|
39
language-containers/kotlin/Containerfile
Normal file
39
language-containers/kotlin/Containerfile
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
# Base Kotlin 1.9.2x 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_kotlin_image VERSION=1.1
|
||||||
|
LABEL com.github.containers.toolbox="true" \
|
||||||
|
com.redhat.component="$NAME" \
|
||||||
|
name="$NAME" \
|
||||||
|
version="$VERSION" \
|
||||||
|
usage="Wyatt's base Kotlin image" \
|
||||||
|
summary="Wyatt's custom base Kotlin image" \
|
||||||
|
maintainer="Wyatt J. Miller <wyatt@wyattjmiller.com>" \
|
||||||
|
vendor="Miller Web Solutions"
|
||||||
|
|
||||||
|
# Set environment variables
|
||||||
|
ENV KOTLIN_VERSION=1.9.23
|
||||||
|
ENV KOTLIN_HOME=/usr/local/kotlin
|
||||||
|
ENV GRADLE_VERSION=8.6
|
||||||
|
ENV GRADLE_HOME=/opt/gradle
|
||||||
|
|
||||||
|
# Install required packages
|
||||||
|
RUN dnf install -y -q wget unzip java-17-openjdk java-17-openjdk-devel && \
|
||||||
|
dnf clean all
|
||||||
|
|
||||||
|
# Download and install Kotlin
|
||||||
|
RUN wget -q "https://github.com/JetBrains/kotlin/releases/download/v${KOTLIN_VERSION}/kotlin-compiler-${KOTLIN_VERSION}.zip" -O kotlin.zip && \
|
||||||
|
unzip -q kotlin.zip -d /usr/local && \
|
||||||
|
mv /usr/local/kotlinc /usr/local/kotlin && \
|
||||||
|
rm kotlin.zip
|
||||||
|
|
||||||
|
# Download and install Gradle
|
||||||
|
RUN wget -q "https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip" -O gradle.zip && \
|
||||||
|
unzip -q gradle.zip -d /opt && \
|
||||||
|
mv "/opt/gradle-${GRADLE_VERSION}" "${GRADLE_HOME}" && \
|
||||||
|
rm gradle.zip
|
@ -16,6 +16,6 @@ LABEL com.github.containers.toolbox="true" \
|
|||||||
maintainer="Wyatt J. Miller <wyatt@wyattjmiller.com>" \
|
maintainer="Wyatt J. Miller <wyatt@wyattjmiller.com>" \
|
||||||
vendor="Miller Web Solutions"
|
vendor="Miller Web Solutions"
|
||||||
|
|
||||||
# Install base development packages
|
# Install node 20 and related npm
|
||||||
RUN dnf install nodejs npm -y -q
|
RUN dnf install nodejs npm -y -q
|
||||||
RUN npm install typescript -g
|
RUN npm install typescript -g
|
||||||
|
@ -16,6 +16,8 @@ LABEL com.github.containers.toolbox="true" \
|
|||||||
maintainer="Wyatt J. Miller <wyatt@wyattjmiller.com>" \
|
maintainer="Wyatt J. Miller <wyatt@wyattjmiller.com>" \
|
||||||
vendor="Miller Web Solutions"
|
vendor="Miller Web Solutions"
|
||||||
|
|
||||||
# Install base development packages
|
# Install node 18 and related npm
|
||||||
RUN dnf install nodejs18 npm -y -q
|
RUN dnf install nodejs18 nodejs18-npm -y -q
|
||||||
|
RUN ln -s /usr/bin/node-18 /usr/bin/node
|
||||||
|
RUN ln -s /usr/bin/npm-18 /usr/bin/npm
|
||||||
RUN npm install typescript -g
|
RUN npm install typescript -g
|
||||||
|
38
specialty-containers/bind/Containerfile
Normal file
38
specialty-containers/bind/Containerfile
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
# Custom BIND DNS server image
|
||||||
|
# Written by Wyatt J. Miller, 2024
|
||||||
|
# This image is opinionated, but you're welcome to customize as much as you like
|
||||||
|
FROM internetsystemsconsortium/bind9:9.18
|
||||||
|
|
||||||
|
# Label it right, ya know?
|
||||||
|
ENV NAME=custom_bind_dns_server_image VERSION=1.0
|
||||||
|
LABEL com.github.containers.toolbox="true" \
|
||||||
|
com.redhat.component="$NAME" \
|
||||||
|
name="$NAME" \
|
||||||
|
version="$VERSION" \
|
||||||
|
usage="BIND DNS server image" \
|
||||||
|
summary="Wyatt's custom BIND DNS server image" \
|
||||||
|
maintainer="Wyatt J. Miller <wyatt@wyattjmiller.com>" \
|
||||||
|
vendor="Miller Web Solutions"
|
||||||
|
|
||||||
|
# Install packages
|
||||||
|
RUN apt update \
|
||||||
|
&& apt install -y \
|
||||||
|
bind9-doc \
|
||||||
|
dnsutils \
|
||||||
|
geoip-bin \
|
||||||
|
mariadb-server \
|
||||||
|
net-tools
|
||||||
|
|
||||||
|
# Copy configuration files
|
||||||
|
# TODO: To the user: CHANGE THESE
|
||||||
|
COPY configuration/named.conf.options /etc/bind/
|
||||||
|
COPY configuration/named.conf.local /etc/bind/
|
||||||
|
COPY configuration/db.example.com /etc/bind/zones/
|
||||||
|
|
||||||
|
# Expose Ports
|
||||||
|
EXPOSE 53/tcp
|
||||||
|
EXPOSE 53/udp
|
||||||
|
EXPOSE 953/tcp
|
||||||
|
|
||||||
|
# Start the DNS service
|
||||||
|
CMD ["/usr/sbin/named", "-g", "-c", "/etc/bind/named.conf", "-u", "bind"]
|
56
specialty-containers/bind/README.md
Normal file
56
specialty-containers/bind/README.md
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
# Custom BIND DNS server
|
||||||
|
|
||||||
|
TODO WORK IN PROGRESS
|
||||||
|
|
||||||
|
Written by Wyatt J. Miller, 2024
|
||||||
|
|
||||||
|
## Table of Contents
|
||||||
|
|
||||||
|
1. Prerequisites
|
||||||
|
2. Pulling
|
||||||
|
3. Installing
|
||||||
|
4. Running
|
||||||
|
|
||||||
|
## Prerequisites
|
||||||
|
|
||||||
|
- `systemd` (typically already installed)
|
||||||
|
- OCI container runtime
|
||||||
|
- Podman is preferred
|
||||||
|
- `podlet`
|
||||||
|
|
||||||
|
## Pulling
|
||||||
|
|
||||||
|
> [!NOTE]
|
||||||
|
> This container is to be run as a service and will be treated as such. This
|
||||||
|
> README will show you how to set this up as a service through `systemd` but
|
||||||
|
> other avenues are more than welcome
|
||||||
|
|
||||||
|
Pull this container from the command below:
|
||||||
|
|
||||||
|
|
||||||
|
```bash
|
||||||
|
podman pull scm.wyattjmiller.com/wymiller/bind-dns-server:latest
|
||||||
|
```
|
||||||
|
|
||||||
|
or you can build this Containerfile yourself!
|
||||||
|
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone http://scm.wyattjmiller.com/wymiller/custom-containers.git
|
||||||
|
cd custom-containers/
|
||||||
|
podman build -t bind-dns-server -f specilaty-containers/bind/Containerfile
|
||||||
|
```
|
||||||
|
|
||||||
|
There are dedicated configuration files that are copied from the file system to
|
||||||
|
the container so it is recommended to build this container instead of pulling
|
||||||
|
it. Pulling the container only allows you to run only a sample DNS server.
|
||||||
|
|
||||||
|
> [!IMPORTANT]
|
||||||
|
> If you pull this image yourself and don't build the image from scratch, your
|
||||||
|
> image name will different! Remember this name in future steps.
|
||||||
|
|
||||||
|
Note to Wyatt: Pull your own DNS configuration from git
|
||||||
|
|
||||||
|
## Installing
|
||||||
|
|
||||||
|
|
17
specialty-containers/bind/config/db.example.com
Normal file
17
specialty-containers/bind/config/db.example.com
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
; TODO: change this to your own soa, ns, a, aaaa, cname, etc. records
|
||||||
|
$TTL 1d ; default expiration time (in seconds) of all RRs without their own TTL value
|
||||||
|
@ IN SOA ns1.example.com. root.example.com. (
|
||||||
|
3 ; Serial
|
||||||
|
1d ; Refresh
|
||||||
|
1h ; Retry
|
||||||
|
1w ; Expire
|
||||||
|
1h ) ; Negative Cache TTL
|
||||||
|
|
||||||
|
; name servers - NS records
|
||||||
|
IN NS ns1.example.com.
|
||||||
|
|
||||||
|
; name servers - A records
|
||||||
|
ns1.example.com. IN A 172.24.0.2
|
||||||
|
|
||||||
|
service1.example.com. IN A 172.24.0.3
|
||||||
|
service2.example.com. IN A 172.24.0.4
|
4
specialty-containers/bind/config/named.conf.local
Normal file
4
specialty-containers/bind/config/named.conf.local
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
zone "example.com" {
|
||||||
|
type master;
|
||||||
|
file "/etc/bind/zones/db.example.com";
|
||||||
|
};
|
11
specialty-containers/bind/config/named.conf.options
Normal file
11
specialty-containers/bind/config/named.conf.options
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
options {
|
||||||
|
directory "/var/cache/bind";
|
||||||
|
|
||||||
|
recursion yes;
|
||||||
|
listen-on { any; };
|
||||||
|
|
||||||
|
forwarders {
|
||||||
|
8.8.8.8;
|
||||||
|
4.4.4.4;
|
||||||
|
};
|
||||||
|
};
|
26
specialty-containers/neovim/Containerfile
Normal file
26
specialty-containers/neovim/Containerfile
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
# Custom Neovim image
|
||||||
|
# Written by Wyatt J. Miller, 2023, 2024
|
||||||
|
# This image is opinionated, but you're welcome to customize as much as you like
|
||||||
|
FROM registry.fedoraproject.org/fedora-toolbox:40
|
||||||
|
|
||||||
|
# Label it right, ya know?
|
||||||
|
ENV NAME=custom_neovim_image VERSION=1.0
|
||||||
|
LABEL com.github.containers.toolbox="true" \
|
||||||
|
com.redhat.component="$NAME" \
|
||||||
|
name="$NAME" \
|
||||||
|
version="$VERSION" \
|
||||||
|
usage="Neovim image, for solely Neovim and everything that makes it run" \
|
||||||
|
summary="Wyatt's custom Neovim image" \
|
||||||
|
maintainer="Wyatt J. Miller <wyatt@wyattjmiller.com>" \
|
||||||
|
vendor="Miller Web Solutions"
|
||||||
|
|
||||||
|
# Install Neovim and what's needed for the AstroNVim distribution
|
||||||
|
RUN dnf copr enable atim/bottom -y
|
||||||
|
RUN dnf install neovim ripgrep cargo nodejs npm bottom python lua fish -y -q
|
||||||
|
RUN cargo install tree-sitter-cli
|
||||||
|
|
||||||
|
# Install lazygit (don't you know??)
|
||||||
|
RUN curl -L https://github.com/jesseduffield/lazygit/releases/download/v0.41.0/lazygit_0.41.0_Linux_x86_64.tar.gz --output lazygit_0.41.0_Linux_x86_64.tar.gz
|
||||||
|
RUN tar xvzf lazygit_0.41.0_Linux_x86_64.tar.gz
|
||||||
|
RUN cp ./lazygit /usr/local/bin/lazygit
|
||||||
|
RUN rm LICENSE README.md lazygit
|
19
specialty-containers/wine/Containerfile
Normal file
19
specialty-containers/wine/Containerfile
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
# Wine container image
|
||||||
|
# Written by Wyatt J. Miller, 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_wine_image VERSION=1.1
|
||||||
|
LABEL com.github.containers.toolbox="true" \
|
||||||
|
com.redhat.component="$NAME" \
|
||||||
|
name="$NAME" \
|
||||||
|
version="$VERSION" \
|
||||||
|
usage="Wine image" \
|
||||||
|
summary="Wyatt's custom Wine image" \
|
||||||
|
maintainer="Wyatt J. Miller <wyatt@wyattjmiller.com>"
|
||||||
|
|
||||||
|
# Install Wine
|
||||||
|
RUN dnf install wine -y
|
Reference in New Issue
Block a user