feat(dockerfiles): Add base Dockerfiles for dbase/dind, enable pnpm and stack-fix, update preinstalled image tooling and registries, and bump @git.zone/tsdocker devDependency
This commit is contained in:
63
Dockerfile_dbase
Normal file
63
Dockerfile_dbase
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
FROM docker:latest
|
||||||
|
LABEL author="Task Venture Capital GmbH <hello@task.vc>"
|
||||||
|
|
||||||
|
WORKDIR /workspace
|
||||||
|
|
||||||
|
# Important environment variables
|
||||||
|
ENV NODE_VERSION_LTS="24.13.0" \
|
||||||
|
NVM_DIR="/usr/local/nvm" \
|
||||||
|
PNPM_HOME="/root/.local/share/pnpm" \
|
||||||
|
NVM_NODEJS_ORG_MIRROR="https://unofficial-builds.nodejs.org/download/release"
|
||||||
|
|
||||||
|
# System packages (single layer)
|
||||||
|
# docker:latest already includes docker-cli and docker-compose plugin
|
||||||
|
RUN apk add --no-cache \
|
||||||
|
bash curl git openssl ca-certificates wget unzip \
|
||||||
|
build-base python3 python3-dev py3-pip linux-headers \
|
||||||
|
libgcc libstdc++ libc6-compat gnupg \
|
||||||
|
libffi-dev openssl-dev libc-dev \
|
||||||
|
iputils bind-tools \
|
||||||
|
tini
|
||||||
|
|
||||||
|
# Install NVM
|
||||||
|
RUN mkdir -p $NVM_DIR && curl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
|
||||||
|
|
||||||
|
# Make nvm available globally in all bash shells
|
||||||
|
RUN printf '%s\n%s\n%s\n' \
|
||||||
|
'export NVM_DIR="/usr/local/nvm"' \
|
||||||
|
'[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"' \
|
||||||
|
'[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion"' \
|
||||||
|
> /etc/bash.bashrc
|
||||||
|
|
||||||
|
# Copy nvm wrapper scripts
|
||||||
|
COPY image_support_files/bash-with-nvm /usr/local/bin/bash-with-nvm
|
||||||
|
COPY image_support_files/docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
|
||||||
|
RUN chmod +x /usr/local/bin/bash-with-nvm /usr/local/bin/docker-entrypoint.sh
|
||||||
|
|
||||||
|
# Use wrapper for RUN commands to enable nvm
|
||||||
|
SHELL ["/usr/local/bin/bash-with-nvm"]
|
||||||
|
|
||||||
|
# Enable nvm for runtime bash commands
|
||||||
|
ENV BASH_ENV=/etc/bash.bashrc
|
||||||
|
|
||||||
|
# Prepare pnpm directory
|
||||||
|
RUN mkdir -p ${PNPM_HOME}
|
||||||
|
ENV PATH="$PNPM_HOME:$PATH"
|
||||||
|
|
||||||
|
# Install Node.js LTS via NVM and pnpm
|
||||||
|
# TARGETARCH fix: override nvm_get_arch for correct musl arch on arm64
|
||||||
|
ARG TARGETARCH
|
||||||
|
RUN NVM_MUSL_ARCH=$([ "$TARGETARCH" = "arm64" ] && echo "arm64-musl" || echo "x64-musl") \
|
||||||
|
&& nvm_get_arch() { echo "$NVM_MUSL_ARCH"; } \
|
||||||
|
&& nvm install $NODE_VERSION_LTS \
|
||||||
|
&& nvm alias default $NODE_VERSION_LTS \
|
||||||
|
&& nvm use default \
|
||||||
|
&& npm install -g pnpm \
|
||||||
|
&& pnpm -v \
|
||||||
|
&& pnpm config set unsafe-perm true
|
||||||
|
|
||||||
|
ENV NODE_PATH=$NVM_DIR/versions/node/v$NODE_VERSION_LTS/lib/node_modules
|
||||||
|
ENV PATH=$NVM_DIR/versions/node/v$NODE_VERSION_LTS/bin:$PATH
|
||||||
|
|
||||||
|
ENTRYPOINT ["/sbin/tini", "--", "/usr/local/bin/docker-entrypoint.sh"]
|
||||||
|
CMD ["bash"]
|
||||||
61
Dockerfile_dbase_dind
Normal file
61
Dockerfile_dbase_dind
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
FROM docker:dind
|
||||||
|
LABEL author="Task Venture Capital GmbH <hello@task.vc>"
|
||||||
|
|
||||||
|
WORKDIR /workspace
|
||||||
|
|
||||||
|
# Important environment variables
|
||||||
|
ENV NODE_VERSION_LTS="24.13.0" \
|
||||||
|
NVM_DIR="/usr/local/nvm" \
|
||||||
|
PNPM_HOME="/root/.local/share/pnpm" \
|
||||||
|
NVM_NODEJS_ORG_MIRROR="https://unofficial-builds.nodejs.org/download/release"
|
||||||
|
|
||||||
|
# System packages
|
||||||
|
RUN apk add --no-cache \
|
||||||
|
bash curl git openssl ca-certificates wget unzip \
|
||||||
|
build-base python3 python3-dev py3-pip linux-headers \
|
||||||
|
libgcc libstdc++ libc6-compat gnupg \
|
||||||
|
libffi-dev openssl-dev libc-dev \
|
||||||
|
iputils bind-tools \
|
||||||
|
tini
|
||||||
|
|
||||||
|
# Install NVM
|
||||||
|
RUN mkdir -p $NVM_DIR && curl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
|
||||||
|
|
||||||
|
# Make nvm available globally in all bash shells
|
||||||
|
RUN printf '%s\n%s\n%s\n' \
|
||||||
|
'export NVM_DIR="/usr/local/nvm"' \
|
||||||
|
'[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"' \
|
||||||
|
'[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion"' \
|
||||||
|
> /etc/bash.bashrc
|
||||||
|
|
||||||
|
# Copy nvm wrapper for build-time SHELL
|
||||||
|
COPY image_support_files/bash-with-nvm /usr/local/bin/bash-with-nvm
|
||||||
|
RUN chmod +x /usr/local/bin/bash-with-nvm
|
||||||
|
|
||||||
|
# Use wrapper for RUN commands to enable nvm
|
||||||
|
SHELL ["/usr/local/bin/bash-with-nvm"]
|
||||||
|
|
||||||
|
# Enable nvm for runtime bash commands (docker exec shells)
|
||||||
|
ENV BASH_ENV=/etc/bash.bashrc
|
||||||
|
|
||||||
|
# Prepare pnpm directory
|
||||||
|
RUN mkdir -p ${PNPM_HOME}
|
||||||
|
ENV PATH="$PNPM_HOME:$PATH"
|
||||||
|
|
||||||
|
# Install Node.js LTS via NVM and pnpm
|
||||||
|
# TARGETARCH fix: override nvm_get_arch for correct musl arch on arm64
|
||||||
|
ARG TARGETARCH
|
||||||
|
RUN NVM_MUSL_ARCH=$([ "$TARGETARCH" = "arm64" ] && echo "arm64-musl" || echo "x64-musl") \
|
||||||
|
&& nvm_get_arch() { echo "$NVM_MUSL_ARCH"; } \
|
||||||
|
&& nvm install $NODE_VERSION_LTS \
|
||||||
|
&& nvm alias default $NODE_VERSION_LTS \
|
||||||
|
&& nvm use default \
|
||||||
|
&& npm install -g pnpm \
|
||||||
|
&& pnpm -v \
|
||||||
|
&& pnpm config set unsafe-perm true
|
||||||
|
|
||||||
|
ENV NODE_PATH=$NVM_DIR/versions/node/v$NODE_VERSION_LTS/lib/node_modules
|
||||||
|
ENV PATH=$NVM_DIR/versions/node/v$NODE_VERSION_LTS/bin:$PATH
|
||||||
|
|
||||||
|
# Keep docker:dind's own ENTRYPOINT (dockerd-entrypoint.sh)
|
||||||
|
# NVM is available in exec shells via BASH_ENV
|
||||||
3
Dockerfile_dbase_npmci
Normal file
3
Dockerfile_dbase_npmci
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
FROM host.today/ht-docker-node:dbase
|
||||||
|
LABEL author="Task Venture Capital GmbH <hello@task.vc>"
|
||||||
|
RUN pnpm install -g @ship.zone/szci
|
||||||
@@ -1,12 +1,7 @@
|
|||||||
FROM host.today/ht-docker-node:szci
|
FROM host.today/ht-docker-node:szci
|
||||||
RUN npm install -g \
|
RUN pnpm install -g \
|
||||||
@git.zone/tsrun \
|
@git.zone/tsrun \
|
||||||
@git.zone/tstest \
|
@git.zone/tstest \
|
||||||
@push.rocks/qenv \
|
@git.zone/tsdocker \
|
||||||
@push.rocks/smartfile \
|
@git.zone/tsbundle \
|
||||||
@push.rocks/smartpath \
|
@git.zone/tools
|
||||||
@push.rocks/smartshell \
|
|
||||||
@push.rocks/tapbundle \
|
|
||||||
axios \
|
|
||||||
@push.rocks/smartdelay \
|
|
||||||
@push.rocks/smartjson
|
|
||||||
|
|||||||
10
changelog.md
10
changelog.md
@@ -1,5 +1,15 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## 2026-02-07 - 5.6.0 - feat(dockerfiles)
|
||||||
|
Add base Dockerfiles for dbase/dind, enable pnpm and stack-fix, update preinstalled image tooling and registries, and bump @git.zone/tsdocker devDependency
|
||||||
|
|
||||||
|
- Added Dockerfile_dbase: Alpine-based docker image with nodejs-current, pnpm installation, python/pip setup, compiles /lib/stack-fix.so and sets LD_PRELOAD, and enables pnpm unsafe-perm.
|
||||||
|
- Added Dockerfile_dbase_dind: multi-stage docker:dind build that installs same toolchain, compiles stack-fix.so in build stage, copies pnpm/python artifacts to final stage, and preserves LD_PRELOAD.
|
||||||
|
- Added Dockerfile_dbase_npmci: lightweight image FROM hosttoday/ht-docker-dbase:latest that installs @ship.zone/npmci globally via pnpm.
|
||||||
|
- Updated Dockerfile_fossglobal_preinstalled_##version##: switched from npm to pnpm and replaced several global packages (removed push.rocks/* and axios; added @git.zone/tsdocker, @git.zone/tsbundle, @git.zone/tools).
|
||||||
|
- Updated npmextra.json: cleared szci.dockerRegistries and simplified @git.zone/tsdocker registries/registryRepoMap to only use code.foss.global and preserved platforms/testDir.
|
||||||
|
- Bumped devDependency @git.zone/tsdocker from ^1.17.0 to ^1.17.1 (patch bump).
|
||||||
|
|
||||||
## 2026-02-07 - 5.5.2 - fix()
|
## 2026-02-07 - 5.5.2 - fix()
|
||||||
no changes detected — no release necessary
|
no changes detected — no release necessary
|
||||||
|
|
||||||
|
|||||||
@@ -23,21 +23,14 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"szci": {
|
"szci": {
|
||||||
"dockerRegistries": [
|
"dockerRegistries": []
|
||||||
"docker.io",
|
|
||||||
"registry.gitlab.com"
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
"@git.zone/tsdocker": {
|
"@git.zone/tsdocker": {
|
||||||
"registries": [
|
"registries": [
|
||||||
"code.foss.global",
|
"code.foss.global"
|
||||||
"registry.gitlab.com",
|
|
||||||
"docker.io"
|
|
||||||
],
|
],
|
||||||
"registryRepoMap": {
|
"registryRepoMap": {
|
||||||
"code.foss.global": "host.today/ht-docker-node",
|
"code.foss.global": "host.today/ht-docker-node"
|
||||||
"registry.gitlab.com": "hosttoday/ht-docker-node",
|
|
||||||
"docker.io": "hosttoday/ht-docker-node"
|
|
||||||
},
|
},
|
||||||
"platforms": ["linux/amd64", "linux/arm64"],
|
"platforms": ["linux/amd64", "linux/arm64"],
|
||||||
"testDir": "./test"
|
"testDir": "./test"
|
||||||
|
|||||||
@@ -35,6 +35,6 @@
|
|||||||
"typescript"
|
"typescript"
|
||||||
],
|
],
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@git.zone/tsdocker": "^1.17.0"
|
"@git.zone/tsdocker": "^1.17.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
10
pnpm-lock.yaml
generated
10
pnpm-lock.yaml
generated
@@ -9,8 +9,8 @@ importers:
|
|||||||
.:
|
.:
|
||||||
devDependencies:
|
devDependencies:
|
||||||
'@git.zone/tsdocker':
|
'@git.zone/tsdocker':
|
||||||
specifier: ^1.17.0
|
specifier: ^1.17.1
|
||||||
version: 1.17.0
|
version: 1.17.1
|
||||||
|
|
||||||
packages:
|
packages:
|
||||||
|
|
||||||
@@ -45,8 +45,8 @@ packages:
|
|||||||
'@design.estate/dees-element@2.1.6':
|
'@design.estate/dees-element@2.1.6':
|
||||||
resolution: {integrity: sha512-7zyHkUjB8UEQgT9VbB2IJtc/yuPt9CI5JGel3b6BxA1kecY64ceIjFvof1uIkc0QP8q2fMLLY45r1c+9zDTjzg==}
|
resolution: {integrity: sha512-7zyHkUjB8UEQgT9VbB2IJtc/yuPt9CI5JGel3b6BxA1kecY64ceIjFvof1uIkc0QP8q2fMLLY45r1c+9zDTjzg==}
|
||||||
|
|
||||||
'@git.zone/tsdocker@1.17.0':
|
'@git.zone/tsdocker@1.17.1':
|
||||||
resolution: {integrity: sha512-fM4PR/PkE+y6gEoe2TCfzjSvuanmD7cdNGcjxXQ8YgxMPcc1yu1c5JLu0ZMKuxI5RVG/6Blw8CT4G7smPCrL2w==}
|
resolution: {integrity: sha512-wfPtOr3n/NPaKhp0jhr8PbHeJZpNvX5JOVo7PLhZd5iV6sM0H+0pZ6Su7Fzz4ct2ETpvaShrBfM5U0o9QKe+RA==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
'@inquirer/checkbox@3.0.1':
|
'@inquirer/checkbox@3.0.1':
|
||||||
@@ -1412,7 +1412,7 @@ snapshots:
|
|||||||
- supports-color
|
- supports-color
|
||||||
- vue
|
- vue
|
||||||
|
|
||||||
'@git.zone/tsdocker@1.17.0':
|
'@git.zone/tsdocker@1.17.1':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@push.rocks/lik': 6.2.2
|
'@push.rocks/lik': 6.2.2
|
||||||
'@push.rocks/npmextra': 5.3.3
|
'@push.rocks/npmextra': 5.3.3
|
||||||
|
|||||||
Reference in New Issue
Block a user