commit
cc7ba72ca2
4 changed files with 84 additions and 0 deletions
46
.github/workflows/build-and-deploy.yml
vendored
Normal file
46
.github/workflows/build-and-deploy.yml
vendored
Normal 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
18
frontend/Dockerfile
Normal 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
19
frontend/nais.yml
Normal 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
|
|
@ -1,6 +1,7 @@
|
||||||
/** @type {import('next').NextConfig} */
|
/** @type {import('next').NextConfig} */
|
||||||
const nextConfig = {
|
const nextConfig = {
|
||||||
reactStrictMode: true,
|
reactStrictMode: true,
|
||||||
|
output: 'standalone',
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = nextConfig
|
module.exports = nextConfig
|
||||||
|
|
Reference in a new issue