Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .claude/settings.local.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"permissions": {
"allow": [
"WebFetch(domain:mariadb.com)",
"WebFetch(domain:downloads.mariadb.com)",
"WebFetch(domain:mariadb.org)",
"WebFetch(domain:legacy-downloads.mariadb.com)"
]
}
}
2 changes: 2 additions & 0 deletions .devcontainer/example/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@
"source=${localEnv:HOME}/.kube,target=/home/vscode/.kube,type=bind,readonly",
// SSH keys for Ansible and Git operations
"source=${localEnv:HOME}/.ssh,target=/home/vscode/.ssh,type=bind,readonly",
// Allow writing to known_hosts so you can add new hosts
"source=${localEnv:HOME}/.ssh/known_hosts,target=/home/vscode/.ssh/known_hosts,type=bind",
// AWS credentials for the AWS CLI
"source=${localEnv:HOME}/.aws,target=/home/vscode/.aws,type=bind,readonly"
],
Expand Down
16 changes: 10 additions & 6 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,13 @@
# -t devops-toolbox:local .
#
# VERSION REFERENCE:
# Terraform: https://releases.hashicorp.com/terraform
# kubectl: https://kubernetes.io/releases
# k9s: https://github.com/derailed/k9s/releases
# .NET: https://dotnet.microsoft.com/download/dotnet
# Ansible: https://pypi.org/project/ansible
# Python: https://www.python.org/downloads
# Terraform: https://releases.hashicorp.com/terraform
# kubectl: https://kubernetes.io/releases
# k9s: https://github.com/derailed/k9s/releases
# .NET: https://dotnet.microsoft.com/download/dotnet
# Ansible: https://pypi.org/project/ansible
# Python: https://www.python.org/downloads
# PostgreSQL: https://www.postgresql.org/support/versioning/
# =============================================================================

# Cloud cli tools
Expand All @@ -42,6 +43,9 @@ STERN_VERSION=v1.33.1
ANSIBLE_VERSION=13.5.0
TERRAFORM_VERSION=1.14.8

# Database clients
POSTGRESQL_CLIENT_VERSION=18

# Programming languages
DOTNET_VERSION=10.0.201
PYTHON_VERSION=3.12
31 changes: 30 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -59,20 +59,49 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
yq \
# Disk usage analysis
ncdu \
# Database clients
# mariadb-client is installed here rather than via the MariaDB Foundation's
# APT repo (as other tools are) because MariaDB 12.x does not have a stable,
# version-addressable APT repository URL. The Ubuntu LTS package is used instead.
mariadb-client \
sqlite3 \
# Python (explicit version from deadsnakes PPA for pinning control)
python${PYTHON_VERSION} \
python${PYTHON_VERSION}-venv \
python3-pip \
pipx \
# Shell completion framework (required for kubectl/terraform completions)
bash-completion \
&& rm -rf /var/lib/apt/lists/*
&& rm -rf /var/lib/apt/lists/*

# Ensure pipx binaries are on PATH for all subsequent RUN steps and terminals
ENV PATH="/root/.local/bin:/home/vscode/.local/bin:${PATH}"
ENV PIPX_HOME="/usr/local/pipx"
ENV PIPX_BIN_DIR="/usr/local/bin"

# -----------------------------------------------------------------------------
# PostgreSQL Client
# Installed via the PostgreSQL Global Development Group (PGDG) APT repository
# for exact major-version pinning and access to current point releases.
# Provides: psql, pg_dump, pg_restore, pg_dumpall.
# Shell completions are shipped with the package and auto-loaded by
# bash-completion — no explicit step required.
# -----------------------------------------------------------------------------
ARG POSTGRESQL_CLIENT_VERSION=18

RUN curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc \
-o /tmp/postgresql.asc \
&& mkdir -p /etc/apt/keyrings \
&& gpg --dearmor -o /etc/apt/keyrings/postgresql.gpg /tmp/postgresql.asc \
&& rm /tmp/postgresql.asc \
&& echo "deb [arch=${TARGETARCH} signed-by=/etc/apt/keyrings/postgresql.gpg] https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" \
> /etc/apt/sources.list.d/postgresql.list \
&& apt-get update \
&& apt-get install -y --no-install-recommends \
postgresql-client-${POSTGRESQL_CLIENT_VERSION} \
&& rm -f /etc/apt/sources.list.d/postgresql.list /etc/apt/keyrings/postgresql.gpg \
&& rm -rf /var/lib/apt/lists/* \
&& psql --version
Comment thread
Taegost marked this conversation as resolved.

# -----------------------------------------------------------------------------
# .NET SDK
Expand Down
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,9 @@ with Docker and VS Code — no local setup required.
| [gcloud CLI](https://cloud.google.com/sdk/gcloud) | See [Dockerfile](./Dockerfile) | Google Cloud resource management |
| [GitHub CLI](https://cli.github.com) | See [Dockerfile](./Dockerfile) | GitHub workflow management |
| [AWS CLI](https://aws.amazon.com/cli/) | See [Dockerfile](./Dockerfile) | AWS resource management |
| [psql](https://www.postgresql.org/docs/current/app-psql.html) | See [Dockerfile](./Dockerfile) | PostgreSQL CLI client |
| [mariadb / mysql](https://mariadb.org) | See [Dockerfile](./Dockerfile) | MariaDB and MySQL CLI client |
| [sqlite3](https://sqlite.org) | See [Dockerfile](./Dockerfile) | SQLite CLI client |
| [ipython](https://ipython.org) | See [dependencies/](./dependencies/) | Enhanced Python REPL |
| [pytest](https://pytest.org) | See [dependencies/](./dependencies/) | Python testing |
| [black](https://black.readthedocs.io) | See [dependencies/](./dependencies/) | Python code formatting |
Expand Down