initial commit
This commit is contained in:
		
							parent
							
								
									8a67761c9a
								
							
						
					
					
						commit
						5f0158590e
					
				
							
								
								
									
										16
									
								
								.dockerignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								.dockerignore
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,16 @@ | ||||
| node_modules | ||||
| .next | ||||
| dist | ||||
| .git | ||||
| .github | ||||
| .vscode | ||||
| .env | ||||
| .env.local | ||||
| .env.development.local | ||||
| .env.test.local | ||||
| .env.production.local | ||||
| README.md | ||||
| .gitignore | ||||
| .eslintrc.json | ||||
| .bolt | ||||
| 
 | ||||
							
								
								
									
										59
									
								
								Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								Dockerfile
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,59 @@ | ||||
| FROM node:18-alpine AS base | ||||
| 
 | ||||
| # Install dependencies only when needed | ||||
| FROM base AS deps | ||||
| WORKDIR /app | ||||
| 
 | ||||
| # Copy package.json and package-lock.json | ||||
| COPY package.json package-lock.json* ./ | ||||
| 
 | ||||
| # Install dependencies | ||||
| RUN npm ci | ||||
| 
 | ||||
| # Rebuild the source code only when needed | ||||
| FROM base AS builder | ||||
| WORKDIR /app | ||||
| COPY --from=deps /app/node_modules ./node_modules | ||||
| COPY . . | ||||
| 
 | ||||
| # Next.js collects completely anonymous telemetry data about general usage. | ||||
| # Learn more here: https://nextjs.org/telemetry | ||||
| # Uncomment the following line to disable telemetry during the build. | ||||
| ENV NEXT_TELEMETRY_DISABLED 1 | ||||
| 
 | ||||
| # Build the application | ||||
| RUN npm run build | ||||
| 
 | ||||
| # Production image, copy all the files and run next | ||||
| FROM base AS runner | ||||
| WORKDIR /app | ||||
| 
 | ||||
| ENV NODE_ENV production | ||||
| ENV NEXT_TELEMETRY_DISABLED 1 | ||||
| 
 | ||||
| RUN addgroup --system --gid 1001 nodejs | ||||
| RUN adduser --system --uid 1001 nextjs | ||||
| 
 | ||||
| COPY --from=builder /app/dist ./dist | ||||
| COPY --from=builder /app/public ./public | ||||
| COPY --from=builder /app/package.json ./package.json | ||||
| COPY --from=builder /app/next.config.js ./next.config.js | ||||
| 
 | ||||
| # Set the correct permission for prerender cache | ||||
| RUN mkdir .next | ||||
| RUN chown nextjs:nodejs .next | ||||
| 
 | ||||
| # Automatically leverage output traces to reduce image size | ||||
| # https://nextjs.org/docs/advanced-features/output-file-tracing | ||||
| COPY --from=builder --chown=nextjs:nodejs /app/dist/standalone ./ | ||||
| COPY --from=builder --chown=nextjs:nodejs /app/dist/static ./dist/static | ||||
| 
 | ||||
| USER nextjs | ||||
| 
 | ||||
| EXPOSE 3000 | ||||
| 
 | ||||
| ENV PORT 3000 | ||||
| 
 | ||||
| # Start the application | ||||
| CMD ["node", "server.js"] | ||||
| 
 | ||||
							
								
								
									
										24
									
								
								compose.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								compose.yml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,24 @@ | ||||
| services: | ||||
|   vultr-dns-manager: | ||||
|     build: | ||||
|       context: . | ||||
|       dockerfile: Dockerfile | ||||
|     ports: | ||||
|       - "3000:3000" | ||||
|     restart: unless-stopped | ||||
|     environment: | ||||
|       - NODE_ENV=production | ||||
|       # You can add other environment variables here if needed | ||||
|     healthcheck: | ||||
|       test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:3000"] | ||||
|       interval: 30s | ||||
|       timeout: 10s | ||||
|       retries: 3 | ||||
|       start_period: 10s | ||||
|     volumes: | ||||
|       # Optional: Mount a volume for persistent data if needed | ||||
|       - vultr-dns-manager-data:/app/.next/cache | ||||
| 
 | ||||
| volumes: | ||||
|   vultr-dns-manager-data: | ||||
| 
 | ||||
| @ -1,12 +1,11 @@ | ||||
| /** @type {import('next').NextConfig} */ | ||||
| const nextConfig = { | ||||
|   // Remove output: 'export' to allow dynamic API routes
 | ||||
|   distDir: 'dist', | ||||
|   eslint: { | ||||
|     ignoreDuringBuilds: true, | ||||
|   }, | ||||
|   images: { unoptimized: true } | ||||
|   // Removed experimental.appDir as it's now enabled by default
 | ||||
|   images: { unoptimized: true }, | ||||
|   output: 'standalone', | ||||
| }; | ||||
| 
 | ||||
| module.exports = nextConfig; | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user