mirror of
https://github.com/esauflores/toolbox.git
synced 2026-03-09 21:03:59 +00:00
fix: replace Dockerfile and add new configuration files for dev-tools setup
This commit is contained in:
31
Dockerfile
31
Dockerfile
@@ -1,31 +0,0 @@
|
|||||||
FROM debian:bookworm-slim
|
|
||||||
|
|
||||||
ARG MISE_VERSION=2026.1.7
|
|
||||||
ARG TOOLS_DIR=/tools
|
|
||||||
|
|
||||||
RUN apt-get update \
|
|
||||||
&& apt-get -y --no-install-recommends install \
|
|
||||||
zstd curl git ca-certificates build-essential \
|
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
RUN mkdir -p ${TOOLS_DIR}/bin ${TOOLS_DIR}/config
|
|
||||||
|
|
||||||
# Mise environment variables
|
|
||||||
ENV TOOLS_DIR="${TOOLS_DIR}"
|
|
||||||
ENV MISE_DATA_DIR="${TOOLS_DIR}"
|
|
||||||
ENV MISE_CONFIG_DIR="${TOOLS_DIR}/config"
|
|
||||||
ENV MISE_CACHE_DIR="${TOOLS_DIR}/cache"
|
|
||||||
ENV MISE_INSTALL_PATH="${TOOLS_DIR}/bin/mise"
|
|
||||||
ENV PATH="${TOOLS_DIR}/bin:${TOOLS_DIR}/shims:${PATH}"
|
|
||||||
ENV MISE_GITHUB_ATTESTATIONS=false
|
|
||||||
ENV MISE_VERSION=${MISE_VERSION}
|
|
||||||
|
|
||||||
RUN curl https://mise.run | sh
|
|
||||||
|
|
||||||
COPY tools-config/mise.toml ${TOOLS_DIR}/config/mise.toml
|
|
||||||
|
|
||||||
RUN sh -c "\
|
|
||||||
rm -rf ${TOOLS_DIR}/shims ${TOOLS_DIR}/installs \
|
|
||||||
&& mise install \
|
|
||||||
&& chmod 755 ${TOOLS_DIR}/bin/mise ${TOOLS_DIR}/shims/* \
|
|
||||||
"
|
|
||||||
31
dev-tools/base/Dockerfile
Normal file
31
dev-tools/base/Dockerfile
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
FROM ubuntu:24.04
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
|
ca-certificates git sudo tini jq \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
COPY --from=ghcr.io/jdx/mise:2026.3.5 /usr/local/bin/mise /tools/bin/mise
|
||||||
|
|
||||||
|
# Always needed env vars for mise
|
||||||
|
ENV PATH="/tools/bin:/tools/shims:${PATH}"
|
||||||
|
ENV MISE_DATA_DIR="/tools"
|
||||||
|
ENV MISE_CONFIG_DIR="/tools/config"
|
||||||
|
|
||||||
|
# Installation and cache paths
|
||||||
|
ENV MISE_CACHE_DIR="/tools/.cache"
|
||||||
|
ENV MISE_INSTALL_PATH="/tools/bin/mise"
|
||||||
|
|
||||||
|
# UV environment variables
|
||||||
|
ENV UV_TOOL_BIN_DIR=/tools/bin
|
||||||
|
ENV UV_PYTHON=3.11
|
||||||
|
|
||||||
|
COPY mise.toml /tools/config/mise.toml
|
||||||
|
|
||||||
|
COPY entrypoint.sh /entrypoint.sh
|
||||||
|
RUN chmod +x /entrypoint.sh
|
||||||
|
|
||||||
|
HEALTHCHECK --interval=5s --timeout=5s --start-period=300s --retries=5 \
|
||||||
|
CMD test -f /tools/.ready
|
||||||
|
|
||||||
|
ENTRYPOINT ["/usr/bin/tini", "--", "/entrypoint.sh"]
|
||||||
|
CMD ["sleep", "infinity"]
|
||||||
14
dev-tools/base/compose.yml
Normal file
14
dev-tools/base/compose.yml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
services:
|
||||||
|
dev-tools:
|
||||||
|
# run `just build dev-tools base` first
|
||||||
|
image: dev-tools:base
|
||||||
|
restart: no
|
||||||
|
environment:
|
||||||
|
- GITHUB_TOKEN=${GITHUB_TOKEN}
|
||||||
|
- MISE_DATA_DIR=/tools
|
||||||
|
- MISE_CONFIG_DIR=/tools/config
|
||||||
|
volumes:
|
||||||
|
- dev-tools-data:/tools
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
dev-tools-data:
|
||||||
18
dev-tools/base/entrypoint.sh
Normal file
18
dev-tools/base/entrypoint.sh
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
rm -f /tools/.ready
|
||||||
|
|
||||||
|
mise ls --missing --json | jq -r 'keys[]' | while read -r tool; do
|
||||||
|
mise install "$tool"
|
||||||
|
done
|
||||||
|
|
||||||
|
mise reshim
|
||||||
|
|
||||||
|
uv tool install ansible --with-executables-from ansible-core
|
||||||
|
|
||||||
|
chmod -R 755 /tools
|
||||||
|
|
||||||
|
touch /tools/.ready
|
||||||
|
|
||||||
|
exec "$@"
|
||||||
26
dev-tools/base/mise.toml
Normal file
26
dev-tools/base/mise.toml
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
[tools]
|
||||||
|
|
||||||
|
### Runtimes ###
|
||||||
|
node = "24"
|
||||||
|
go = "1.26"
|
||||||
|
uv = "latest"
|
||||||
|
|
||||||
|
### Infrastructure ###
|
||||||
|
kubectl = "latest"
|
||||||
|
terraform = "latest"
|
||||||
|
docker-cli = "latest"
|
||||||
|
# ansible - controlled via uv
|
||||||
|
|
||||||
|
### Secrets ###
|
||||||
|
sops = "latest"
|
||||||
|
age = "latest"
|
||||||
|
|
||||||
|
### CLI ###
|
||||||
|
just = "latest"
|
||||||
|
gh = "latest"
|
||||||
|
jq = "latest"
|
||||||
|
yq = "latest"
|
||||||
|
bat = "latest"
|
||||||
|
ripgrep = "latest"
|
||||||
|
fzf = "latest"
|
||||||
|
direnv = "latest"
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
services:
|
|
||||||
dev-tools:
|
|
||||||
build:
|
|
||||||
context: .
|
|
||||||
dockerfile: Dockerfile
|
|
||||||
args:
|
|
||||||
- MISE_VERSION=2026.1.7
|
|
||||||
- TOOLS_DIR=/tools
|
|
||||||
environment:
|
|
||||||
- GITHUB_TOKEN=${GITHUB_TOKEN}
|
|
||||||
volumes:
|
|
||||||
- dev-tools:/tools
|
|
||||||
restart: no
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
dev-tools:
|
|
||||||
name: dev-tools
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
[tools]
|
|
||||||
# programming tools
|
|
||||||
duckdb = "1"
|
|
||||||
node = "24"
|
|
||||||
python = "3.11.14"
|
|
||||||
go = "1.26"
|
|
||||||
uv = "latest"
|
|
||||||
|
|
||||||
# secret tools
|
|
||||||
sops = "latest"
|
|
||||||
age = "latest"
|
|
||||||
|
|
||||||
# infra tools
|
|
||||||
mc = "latest"
|
|
||||||
supabase = "2"
|
|
||||||
|
|
||||||
# dev tools
|
|
||||||
bat = "latest"
|
|
||||||
eza = "latest"
|
|
||||||
ripgrep = "latest"
|
|
||||||
fzf = "latest"
|
|
||||||
jq = "latest"
|
|
||||||
yq = "latest"
|
|
||||||
just = "latest"
|
|
||||||
gh = "latest"
|
|
||||||
starship = "latest"
|
|
||||||
Reference in New Issue
Block a user