Skip to content

Commit

Permalink
ci: add dockerfile and github workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
VilemRaska committed Feb 4, 2025
1 parent e10d795 commit daba649
Show file tree
Hide file tree
Showing 4 changed files with 137 additions and 33 deletions.
33 changes: 0 additions & 33 deletions .circleci/config.yml

This file was deleted.

16 changes: 16 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
node_modules
tmp
dist
.git
Dockerfile
.dockerignore
compose.yml
.prettierignore
.prettierrc
.zed
.data
.angular
.circleci
.vscode
reset.sh
README.md
56 changes: 56 additions & 0 deletions .github/workflows/production.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: gapp

jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3

- name: Prepare
id: prep
run: |
DOCKER_IMAGE=ghcr.io/${{ secrets.USER }}/${GITHUB_REPOSITORY#*/}
VERSION=latest
SHORTREF=${GITHUB_SHA::8}
# If this is git tag, use the tag name as a docker tag
if [[ $GITHUB_REF == refs/tags/* ]]; then
VERSION=${GITHUB_REF#refs/tags/v}
fi
TAGS="${DOCKER_IMAGE}:${VERSION},${DOCKER_IMAGE}:${SHORTREF}"
# If the VERSION looks like a version number, assume that
# this is the most recent version of the image and also
# tag it 'latest'.
if [[ $VERSION =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
TAGS="$TAGS,${DOCKER_IMAGE}:latest"
fi
# Set output parameters.
echo ::set-output name=tags::${TAGS}
echo ::set-output name=docker_image::${DOCKER_IMAGE}
# - name: Setup QUEMU
# uses: docker/setup-qemu-action@v2
# with:
# platforms: 'all'

- name: Setup buildx
id: buildx
uses: docker/setup-buildx-action@v2

- name: Login to GHCR
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ secrets.USER }}
password: ${{ secrets.PAT }}

- name: Build and push
uses: docker/build-push-action@v3
with:
builder: ${{ steps.buildx.outputs.name }}
push: true
tags: ${{ steps.prep.outputs.tags }}
65 changes: 65 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# Build stage
FROM node:22.13.1-alpine AS build

WORKDIR /app
RUN apk update && apk add --no-cache dumb-init

COPY . .
RUN npm ci

RUN NX_DAEMON=false npm run server:build
RUN X_DAEMON=false npm run dashboard:build

# CMD ["tail", "-f", "/dev/null"]

# RUN npm run dashboard:build
# RUN npm run server:build


## RUNTIME IMAGE ###
FROM node:22.13.1-alpine

WORKDIR /app

COPY --from=build /usr/bin/dumb-init /usr/bin/dumb-init
COPY --from=build /app/dist/apps ./

WORKDIR /app/gapp-server

RUN npm ci

EXPOSE 3000

ENV NODE_ENV=production

CMD ["dumb-init", "node", "main.js"]

# WORKDIR /app
# RUN corepack enable


# COPY package.json .yarnrc.yml prepare.sh yarn.lock tsconfig.base.json ./
# COPY .yarn ./.yarn
# COPY apps/api/package.json ./apps/api/

# RUN yarn
# COPY apps/api ./apps/api
# RUN yarn workspace @stte/api db:generate
# RUN yarn workspace @stte/api build

# ## RUNTIME IMAGE ###
# FROM node:20.11.1-alpine

# WORKDIR /app
# RUN corepack enable

# COPY --from=build /usr/bin/dumb-init /usr/bin/dumb-init
# COPY --from=build /app/package.json /app/yarn.lock /app/prepare.sh ./
# COPY --from=build /app/apps/api/package.json ./apps/api/
# COPY --from=build /app/apps/api/prisma-client ./apps/api/prisma-client
# COPY apps/api/swagger.yaml ./
# COPY --from=build /app/apps/api/dist ./apps/api/dist

# RUN yarn cache clean && yarn workspaces focus @stte/api --production

# CMD ["dumb-init", "yarn", "start:api"]

0 comments on commit daba649

Please sign in to comment.