🚀deploy

Co-authored-by: Amalie Erdal Mansaker <amalie.erdal.mansaker@nav.no>
This commit is contained in:
sindrekjelsrud 2023-06-28 16:17:21 +02:00
parent 6c08b11d37
commit 06c08ce89e
4 changed files with 84 additions and 0 deletions

46
.github/workflows/build-and-deploy.yml vendored Normal file
View file

@ -0,0 +1,46 @@
name: "Build and deploy app"
on:
workflow_dispatch:
push:
branches:
- "main"
env:
"IMAGE": "ghcr.io/${{ github.repository }}:${{ github.sha }}"
jobs:
"build":
name: "build"
runs-on: "ubuntu-latest"
steps:
- uses: "actions/checkout@v3"
- uses: "actions/setup-node@v3"
with:
node-version: "18"
- name: "Install dependencies"
run: "yarn"
- name: "Build app"
run: "yarn run build"
- name: "Login to GitHub Docker Registry"
uses: "docker/login-action@v1"
with:
"registry": "ghcr.io"
"username": "${{ github.actor }}"
"password": "${{ secrets.GITHUB_TOKEN }}"
- name: "Build and push Docker"
uses: "docker/build-push-action@v2"
with:
context: .
file: frontend/Dockerfile
tags: "${{ env.IMAGE }}"
push: "true"
"deploy":
name: "Deploy app"
needs: "build"
runs-on: "ubuntu-latest"
steps:
- uses: "actions/checkout@v3"
- name: "Deploy app"
uses: "nais/deploy/actions/deploy@v1"
env:
"APIKEY": "${{ secrets.NAIS_DEPLOY_APIKEY }}"
"CLUSTER": "dev-gcp"
"RESOURCE": "frontend/nais.yml"

18
frontend/Dockerfile Normal file
View file

@ -0,0 +1,18 @@
FROM node:18-alpine
ENV NODE_ENV production
RUN addgroup --system --gid 1069 nodejs
RUN adduser --system --uid 1069 nextjs
WORKDIR /app
COPY --chown=nextjs:nodejs .next/standalone ./
COPY --chown=nextjs:nodejs .next/static ./.next/static
USER nextjs
EXPOSE 3000
ENV PORT 3000
CMD ["node", "server.js"]

19
frontend/nais.yml Normal file
View file

@ -0,0 +1,19 @@
apiVersion: "nais.io/v1alpha1"
kind: "Application"
metadata:
name: "helse-sprik"
namespace: "helse-sprik"
spec:
image: {{ image }}
port: 3000
replicas:
min: 1
max: 2
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
memory: 128Mi
ingresses:
- https://helse-sprik.intern.dev.nav.no

View file

@ -1,6 +1,7 @@
/** @type {import('next').NextConfig} */
const nextConfig = {
reactStrictMode: true,
output: 'standalone',
}
module.exports = nextConfig