Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 50 additions & 0 deletions .github/workflows/node-24.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: CI

on:
push:
branches:
- main
pull_request:

jobs:
test-node-24:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3

- name: Check node-24/node-base.Dockerfile
uses: hadolint/hadolint-action@v3.1.0
with:
dockerfile: node-24/node-base.Dockerfile

- name: Check node-24/node-dev.Dockerfile
uses: hadolint/hadolint-action@v3.1.0
with:
dockerfile: node-24/node-dev.Dockerfile

- name: Check examples/node-24/Dockerfile
uses: hadolint/hadolint-action@v3.1.0
with:
dockerfile: examples/node-24/Dockerfile

- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y build-essential wait-for-it

- name: Build containers
run: make node-24

- name: Run node-24-example container
run: |
docker run -d --name node-24-example -p 3000:3000 node-24-example

- name: Wait for node-24-example container
run: wait-for-it localhost:3000

- name: Check node-24-example endpoint is working
run: |
for i in {1..10}; do curl http://localhost:3000/ && break || sleep 1; done

- name: Stop node-24-example container
run: docker stop node-24-example
30 changes: 30 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,36 @@ jobs:
docker push quay.io/mynth/node:22-dev-$TAG
if: github.ref == 'refs/heads/main'

publish-node-24:
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Login to Quay.io
uses: docker/login-action@v2
with:
registry: quay.io
username: ${{ secrets.QUAY_ID }}
password: ${{ secrets.QUAY_PW }}

- name: Checkout repository
uses: actions/checkout@v3

- name: Build node container
run: |
make build-node-24-base
make build-node-24-dev

- name: Publish container
run: |
TAG=$(git rev-parse --short HEAD)
docker tag quay.io/mynth/node:24-base quay.io/mynth/node:24-base-$TAG
docker tag quay.io/mynth/node:24-dev quay.io/mynth/node:24-dev-$TAG
docker push quay.io/mynth/node:24-base
docker push quay.io/mynth/node:24-dev
docker push quay.io/mynth/node:24-base-$TAG
docker push quay.io/mynth/node:24-dev-$TAG
if: github.ref == 'refs/heads/main'

publish-python:
runs-on: ubuntu-latest
timeout-minutes: 10
Expand Down
10 changes: 10 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
all: node-22 python
node-22: build-node-22-base build-node-22-dev build-node-22-example
node-24: build-node-24-base build-node-24-dev build-node-24-example
python: build-python-base build-python-dev build-python-example

build-node-22-base:
Expand All @@ -11,6 +12,15 @@ build-node-22-dev:
build-node-22-example:
docker build -t node-22-example examples/node-22

build-node-24-base:
docker build -t quay.io/mynth/node:24-base -f node-24/node-base.Dockerfile node-24

build-node-24-dev:
docker build -t quay.io/mynth/node:24-dev -f node-24/node-dev.Dockerfile node-24

build-node-24-example:
docker build -t node-24-example examples/node-24

build-python-base:
docker build -t quay.io/mynth/python:base -f python/python-base.Dockerfile python

Expand Down
30 changes: 30 additions & 0 deletions examples/node-24/.dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
Dockerfile

# Ignore node_modules, as they will be installed during the build process
node_modules

# Ignore logs
*.log

# Ignore any local environment files
.env

# Ignore any build or distribution folders
dist
build

# Ignore any test or coverage folders
test
coverage

# Ignore any editor or OS specific files
*.swp
*.swo
*.swn
*.bak
*.tmp
*.sublime*
*.idea
*.vscode
.DS_Store
Thumbs.db
1 change: 1 addition & 0 deletions examples/node-24/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
node_modules
11 changes: 11 additions & 0 deletions examples/node-24/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
FROM quay.io/mynth/node:24-dev AS builder

# Build the project
WORKDIR /app
COPY --chown=noddy:noddy . ./
RUN pnpm install --prod

FROM quay.io/mynth/node:24-base
WORKDIR /app
COPY --from=builder --chown=noddy:noddy /app ./
CMD ["node", "--import", "tsx", "entrypoint.ts"]
5 changes: 5 additions & 0 deletions examples/node-24/entrypoint.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
const main = () => {
console.log("hello");
};

main();
16 changes: 16 additions & 0 deletions examples/node-24/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"name": "hello-node",
"version": "0.1.0",
"private": true,
"packageManager": "pnpm@10.23.0",
"scripts": {
"build": "pnpm tsc"
},
"dependencies": {
"tsx": "^4.20.6"
},
"devDependencies": {
"@types/node": "^24.10.1",
"typescript": "^5.9.3"
}
}
Loading