Jelajahi Sumber

add dockerfile

Daniel Bohry 9 bulan lalu
induk
melakukan
0e88def9b0
4 mengubah file dengan 40 tambahan dan 5 penghapusan
  1. 15 0
      Dockerfile
  2. 18 0
      nginx.conf
  3. 1 0
      package.json
  4. 6 5
      svelte.config.js

+ 15 - 0
Dockerfile

@@ -0,0 +1,15 @@
+FROM node:20-alpine AS build
+
+WORKDIR /app
+
+COPY package.json ./
+COPY package-lock.json ./
+RUN npm install
+COPY . ./
+RUN npm run build
+
+FROM nginx:1.19-alpine
+
+COPY nginx.conf /etc/nginx/conf.d/default.conf
+
+COPY --from=build /app/build /usr/share/nginx/html

+ 18 - 0
nginx.conf

@@ -0,0 +1,18 @@
+server {
+  listen 80;
+
+  root /usr/share/nginx/html;
+  index index.html;
+
+  location / {
+    try_files $uri $uri/ /index.html;
+  }
+
+  location ~* \.(js|css|png|jpg|jpeg|gif|svg|ico|woff|woff2|ttf|eot|otf|mp4|webm|ogg|mp3|wav|m4a|json|txt|xml)$ {
+    expires 1y;
+    access_log off;
+    add_header Cache-Control "public";
+  }
+
+  error_page 404 /index.html;
+}

+ 1 - 0
package.json

@@ -12,6 +12,7 @@
 		"@fontsource/fira-mono": "^5.0.0",
 		"@neoconfetti/svelte": "^2.0.0",
 		"@sveltejs/adapter-auto": "^3.0.0",
+		"@sveltejs/adapter-static": "^3.0.8",
 		"@sveltejs/kit": "^2.0.0",
 		"@sveltejs/vite-plugin-svelte": "^3.0.0",
 		"@types/eslint": "^9.6.0",

+ 6 - 5
svelte.config.js

@@ -1,12 +1,13 @@
-import adapter from '@sveltejs/adapter-auto';
+import adapter from '@sveltejs/adapter-static';
 
 /** @type {import('@sveltejs/kit').Config} */
 const config = {
 	kit: {
-		// adapter-auto only supports some environments, see https://kit.svelte.dev/docs/adapter-auto for a list.
-		// If your environment is not supported, or you settled on a specific environment, switch out the adapter.
-		// See https://kit.svelte.dev/docs/adapters for more information about adapters.
-		adapter: adapter()
+		adapter: adapter({
+			pages: 'build',
+			assets: 'build',
+			fallback: 'index.html' // useful for SPA routing
+		})
 	}
 };