Compare commits
2 Commits
591ccc361b
...
7391a09ee2
Author | SHA1 | Date | |
---|---|---|---|
7391a09ee2 | |||
c7d3f92558 |
7
.dockerignore
Normal file
7
.dockerignore
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# Don't copy node_modules
|
||||||
|
node_modules
|
||||||
|
|
||||||
|
# Ignore common folders that we do not need
|
||||||
|
.next
|
||||||
|
.github
|
||||||
|
.vscode
|
18
.gitea/workflows/container-build.yaml
Normal file
18
.gitea/workflows/container-build.yaml
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
name: Build Production Container
|
||||||
|
run-name: $Env:GITHUB_REF_TYPE Production Build
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- *.*.*
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
Explore-Gitea-Actions:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Check out repository code
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
- name: Deploy
|
||||||
|
run: |
|
||||||
|
echo "${{ secrets.CONTAINER_REGISTRY_ACCESS_TOKEN }}" | docker login git.grosinger.net --password-stdin
|
||||||
|
docker build -t git.grosinger.net/west-sound-hall:$Env:GITHUB_REF_TYPE .
|
||||||
|
docker push git.grosinger.net/west-sound-hall:$Env:GITHUB_REF_TYPE
|
37
Dockerfile
Normal file
37
Dockerfile
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
FROM docker.io/library/node:18-alpine AS build-env
|
||||||
|
|
||||||
|
# Disable telemetry
|
||||||
|
ENV NEXT_TELEMETRY_DISABLED 1
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# Building app
|
||||||
|
COPY package*.json ./
|
||||||
|
|
||||||
|
# Install node modules
|
||||||
|
# Note: We also install dev deps as TypeScript may be needed
|
||||||
|
RUN npm install
|
||||||
|
|
||||||
|
# Copy files. Use dockerignore to avoid copying node_modules
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
# Build
|
||||||
|
RUN npm run build
|
||||||
|
|
||||||
|
# Running the app
|
||||||
|
FROM gcr.io/distroless/nodejs:18 AS runner
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# Mark as prod, disable telemetry, set port
|
||||||
|
ENV NODE_ENV production
|
||||||
|
ENV PORT 3000
|
||||||
|
ENV NEXT_TELEMETRY_DISABLED 1
|
||||||
|
|
||||||
|
# Copy from build
|
||||||
|
COPY --from=build-env /app/next.config.mjs ./
|
||||||
|
COPY --from=build-env /app/public ./public
|
||||||
|
COPY --from=build-env /app/.next ./.next
|
||||||
|
COPY --from=build-env /app/node_modules ./node_modules
|
||||||
|
|
||||||
|
# Run app command
|
||||||
|
CMD ["./node_modules/next/dist/bin/next", "start"]
|
14
package-lock.json
generated
14
package-lock.json
generated
@ -42,7 +42,7 @@
|
|||||||
"eslint-config-next": "13.4.16",
|
"eslint-config-next": "13.4.16",
|
||||||
"prettier": "^3.0.1",
|
"prettier": "^3.0.1",
|
||||||
"prettier-plugin-tailwindcss": "^0.5.2",
|
"prettier-plugin-tailwindcss": "^0.5.2",
|
||||||
"sharp": "^0.32.0"
|
"sharp": "0.32.6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@aashutoshrathi/word-wrap": {
|
"node_modules/@aashutoshrathi/word-wrap": {
|
||||||
@ -8714,9 +8714,9 @@
|
|||||||
"integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="
|
"integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="
|
||||||
},
|
},
|
||||||
"node_modules/sharp": {
|
"node_modules/sharp": {
|
||||||
"version": "0.32.4",
|
"version": "0.32.6",
|
||||||
"resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.4.tgz",
|
"resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.6.tgz",
|
||||||
"integrity": "sha512-exUnZewqVZC6UXqXuQ8fyJJv0M968feBi04jb9GcUHrWtkRoAKnbJt8IfwT4NJs7FskArbJ14JAFGVuooszoGg==",
|
"integrity": "sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@ -16578,9 +16578,9 @@
|
|||||||
"integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="
|
"integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="
|
||||||
},
|
},
|
||||||
"sharp": {
|
"sharp": {
|
||||||
"version": "0.32.4",
|
"version": "0.32.6",
|
||||||
"resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.4.tgz",
|
"resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.6.tgz",
|
||||||
"integrity": "sha512-exUnZewqVZC6UXqXuQ8fyJJv0M968feBi04jb9GcUHrWtkRoAKnbJt8IfwT4NJs7FskArbJ14JAFGVuooszoGg==",
|
"integrity": "sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"color": "^4.2.3",
|
"color": "^4.2.3",
|
||||||
|
@ -35,6 +35,7 @@
|
|||||||
"react": "18.2.0",
|
"react": "18.2.0",
|
||||||
"react-dom": "18.2.0",
|
"react-dom": "18.2.0",
|
||||||
"remark-gfm": "^3.0.1",
|
"remark-gfm": "^3.0.1",
|
||||||
|
"sharp": "0.32.6",
|
||||||
"stripe": "14.9.0",
|
"stripe": "14.9.0",
|
||||||
"tailwindcss": "^3.3.3",
|
"tailwindcss": "^3.3.3",
|
||||||
"typescript": "5.1.6"
|
"typescript": "5.1.6"
|
||||||
@ -43,7 +44,6 @@
|
|||||||
"eslint": "8.45.0",
|
"eslint": "8.45.0",
|
||||||
"eslint-config-next": "13.4.16",
|
"eslint-config-next": "13.4.16",
|
||||||
"prettier": "^3.0.1",
|
"prettier": "^3.0.1",
|
||||||
"prettier-plugin-tailwindcss": "^0.5.2",
|
"prettier-plugin-tailwindcss": "^0.5.2"
|
||||||
"sharp": "^0.32.0"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user