-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ci: add dockerfile and github workflow
- Loading branch information
1 parent
e10d795
commit daba649
Showing
4 changed files
with
137 additions
and
33 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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"] |