Skip to content

Commit

Permalink
feat: added image with nodejs20 (#27)
Browse files Browse the repository at this point in the history
  • Loading branch information
dbarrosop authored Jun 25, 2024
1 parent 10f1b79 commit e16da18
Show file tree
Hide file tree
Showing 3 changed files with 59 additions and 1 deletion.
16 changes: 15 additions & 1 deletion .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,19 @@ jobs:
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

- name: Build and publish to Docker Hub
uses: docker/build-push-action@v2
timeout-minutes: 60
with:
# TODO: use cache https://github.com/docker/build-push-action/blob/master/docs/advanced/cache.md
context: .
platforms: linux/amd64,linux/arm64
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: 18-${{ steps.meta.outputs.labels }}
file: 18.Dockerfile

- name: Build and publish to Docker Hub
uses: docker/build-push-action@v2
timeout-minutes: 60
Expand All @@ -53,4 +66,5 @@ jobs:
platforms: linux/amd64,linux/arm64
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
labels: 20-${{ steps.meta.outputs.labels }}
file: 20.Dockerfile
File renamed without changes.
44 changes: 44 additions & 0 deletions 20.Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
FROM node:20-alpine


# * Same version as in Watchtower
ARG EXPRESS_VERSION=4.18.2
ENV EXPRESS_VERSION $EXPRESS_VERSION

# * path to the server files
ARG SERVER_PATH /opt/server
ENV SERVER_PATH=$SERVER_PATH

# * Required to access to the globally installed modules
ENV NODE_PATH=/usr/local/lib/node_modules

# * Add path to the stored pnpm packages
ENV PNPM_HOME=/root/.local/share/pnpm
ENV PATH=$PATH:$PNPM_HOME

# * Directory where the Nhost project is located
ENV NHOST_PROJECT_PATH=/opt/project

# * Default package manager
ENV PACKAGE_MANAGER=pnpm

# * Use a custom Typescript compiler rather than the one from the project
ENV SWC_NODE_PROJECT $SERVER_PATH/tsconfig.json

# install dependencies
RUN apk update && apk upgrade && \
apk add --no-cache git openssh python3 make g++

# * Install packages that are required for this docker image to run
RUN npm install -g pnpm nodemon express@$EXPRESS_VERSION morgan [email protected] tsx @antfu/ni

# * The pnpm store should be mounted in the same volume as node_modules (requires hard links)
# * See https://pnpm.io/6.x/npmrc#store-dir
RUN pnpm config set store-dir $NHOST_PROJECT_PATH/node_modules/.pnpm-store

# * Copy server files
COPY nodemon.json start.sh server.ts tsconfig.json $SERVER_PATH/

# * Change working directory to the Nhost project directory
WORKDIR $NHOST_PROJECT_PATH
ENTRYPOINT $SERVER_PATH/start.sh

0 comments on commit e16da18

Please sign in to comment.