fix: replace Dockerfile and add new configuration files for dev-tools setup

This commit is contained in:
2026-03-09 05:23:38 +07:00
parent 82f7ffe33c
commit 662ac1b191
8 changed files with 89 additions and 74 deletions

View File

@@ -0,0 +1 @@
GITHUB_TOKEN=ghp_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

31
dev-tools/base/Dockerfile Normal file
View 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"]

View 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:

View 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
View 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"