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