Skip to content

Commit 00a6bae

Browse files
committed
Init
1 parent 7c8ea20 commit 00a6bae

File tree

6 files changed

+203
-0
lines changed

6 files changed

+203
-0
lines changed

.github/dependabot.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
version: 2
2+
3+
updates:
4+
- package-ecosystem: github-actions
5+
directory: /
6+
schedule:
7+
interval: daily

.github/workflows/docker.yml

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
name: "Docker"
2+
3+
on:
4+
workflow_dispatch:
5+
6+
push:
7+
branches: ["master"]
8+
9+
schedule:
10+
- cron: "0 8 * * 1"
11+
12+
jobs:
13+
test:
14+
name: "Test"
15+
runs-on: ubuntu-latest
16+
steps:
17+
- name: Checkout
18+
uses: actions/checkout@v4
19+
20+
- name: Set up Docker Buildx
21+
uses: docker/setup-buildx-action@v3
22+
23+
- name: Build image for testing
24+
uses: docker/build-push-action@v6
25+
with:
26+
context: .
27+
file: ./Dockerfile
28+
push: false
29+
tags: dockette/vibestack:latest-test
30+
platforms: linux/amd64
31+
cache-from: type=gha
32+
cache-to: type=gha,mode=max
33+
load: true
34+
35+
- name: Test Node.js version
36+
run: |
37+
docker run --rm dockette/vibestack:latest-test node --version
38+
39+
- name: Test GitHub CLI
40+
run: |
41+
docker run --rm dockette/vibestack:latest-test gh --version
42+
43+
build:
44+
name: "Build"
45+
uses: dockette/.github/.github/workflows/docker.yml@master
46+
secrets: inherit
47+
with:
48+
image: "dockette/vibestack"
49+
tag: "latest"
50+
context: "."
51+
platforms: "linux/amd64,linux/arm64"
52+
push: ${{ github.ref == 'refs/heads/master' }}

Dockerfile

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
FROM debian:bookworm-slim
2+
3+
ARG TARGETARCH
4+
5+
ENV PATH=~/bin:~/.local/bin:$PATH
6+
ENV GH_VERSION=2.83.1
7+
8+
# INSTALLATION #################################################################
9+
RUN apt update && \
10+
apt dist-upgrade -y
11+
12+
# DEPENDENCIES #################################################################
13+
RUN apt install -y \
14+
wget \
15+
curl \
16+
git \
17+
ca-certificates \
18+
gnupg \
19+
lsb-release \
20+
nano && \
21+
# CLEAN UP #################################################################
22+
apt-get clean -y && \
23+
apt-get autoclean -y && \
24+
apt-get autoremove -y && \
25+
rm -rf /var/lib/apt/lists/* /var/lib/log/* /tmp/* /var/tmp/*
26+
27+
# NVM ##########################################################################
28+
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash && \
29+
export NVM_DIR="$HOME/.nvm" && \
30+
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
31+
nvm install 22 && \
32+
nvm use 22 && \
33+
nvm alias default 22 && \
34+
echo 'export NVM_DIR="$HOME/.nvm"' >> ~/.bashrc && \
35+
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"' >> ~/.bashrc && \
36+
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"' >> ~/.bashrc
37+
38+
ENV NVM_DIR=/root/.nvm
39+
RUN export NVM_DIR=/root/.nvm && \
40+
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
41+
NODE_PATH=$(find $NVM_DIR/versions/node -maxdepth 1 -type d -name "v22*" | head -1) && \
42+
ln -sf $NODE_PATH/bin/node /usr/local/bin/node && \
43+
ln -sf $NODE_PATH/bin/npm /usr/local/bin/npm && \
44+
ln -sf $NODE_PATH/bin/npx /usr/local/bin/npx
45+
46+
# CLAUDE #######################################################################
47+
RUN curl -fsSL https://claude.ai/install.sh | bash
48+
49+
# GITHUB CLI ###################################################################
50+
RUN ARCH=$(case ${TARGETARCH} in \
51+
amd64) echo "linux_amd64" ;; \
52+
arm64) echo "linux_arm64" ;; \
53+
arm) echo "linux_armv6" ;; \
54+
*) echo "linux_amd64" ;; \
55+
esac) && \
56+
curl -OL https://github.com/cli/cli/releases/download/v${GH_VERSION}/gh_${GH_VERSION}_${ARCH}.tar.gz && \
57+
tar -xvf gh_${GH_VERSION}_${ARCH}.tar.gz && \
58+
rm gh_${GH_VERSION}_${ARCH}.tar.gz && \
59+
mv gh_${GH_VERSION}_${ARCH}/bin/gh /usr/local/bin
60+
61+
# WORKDIR ######################################################################
62+
WORKDIR /workspace
63+
64+
CMD ["/bin/bash"]

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2025 Dockette
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

Makefile

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
DOCKER_IMAGE=dockette/vibestack
2+
DOCKER_PLATFORMS?=linux/amd64,linux/arm64
3+
4+
build:
5+
docker buildx build --platform ${DOCKER_PLATFORMS} -t ${DOCKER_IMAGE}:latest .
6+
7+
test:
8+
docker run --rm ${DOCKER_IMAGE}:latest node --version
9+
docker run --rm ${DOCKER_IMAGE}:latest gh --version

README.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
<h1 align=center>Dockette / Vibestack</h1>
2+
3+
<p align=center>
4+
🎁 Dockerized stack for vibint. Claude, Node.js, GitHub CLI, and development tools.
5+
</p>
6+
7+
<p align=center>
8+
🕹 <a href="https://f3l1x.io">f3l1x.io</a> | 💻 <a href="https://github.com/f3l1x">f3l1x</a> | 🐦 <a href="https://twitter.com/xf3l1x">@xf3l1x</a>
9+
</p>
10+
11+
<p align=center>
12+
<a href="https://hub.docker.com/r/dockette/vibestack/"><img src="https://badgen.net/docker/pulls/dockette/vibestack"></a>
13+
<a href="https://bit.ly/ctteg"><img src="https://badgen.net/badge/support/gitter/cyan"></a>
14+
<a href="https://github.com/sponsors/f3l1x"><img src="https://badgen.net/badge/sponsor/donations/F96854"></a>
15+
</p>
16+
17+
------
18+
19+
## Prologue
20+
21+
Docker image with Claude CLI, Node.js 22, GitHub CLI, and essential development tools.
22+
23+
**Features**
24+
25+
- Debian Bookworm (slim)
26+
- Node.js 22 (via NVM)
27+
- Claude CLI (claude)
28+
- GitHub CLI (gh)
29+
- Essential development tools (git, curl, wget, nano)
30+
31+
## Usage
32+
33+
```sh
34+
docker run \
35+
--rm \
36+
-it \
37+
dockette/vibestack:latest
38+
```
39+
40+
## ENV(s)
41+
42+
- `PATH` - Includes `~/bin` and `~/.local/bin` for user-installed tools
43+
44+
## Workdir
45+
46+
Default working directory is `/workspace`.
47+
48+
## User
49+
50+
Default user is `vibestack` with UID `1000` and GID `1000` and `sudo` no password.

0 commit comments

Comments
 (0)