From 6811b86d7f075ab7cbe7510e91d2771d27be8ba1 Mon Sep 17 00:00:00 2001 From: Riley Zhang Date: Wed, 24 Jun 2026 06:46:01 +0200 Subject: [PATCH] Dockerize hatch.surf homepage - Created Dockerfile using nginx:alpine to serve static files - Created docker-compose.yml for easy local development - Added .dockerignore to exclude unnecessary files - Updated README with Docker instructions - Tested locally to ensure site runs correctly Co-Authored-By: Paperclip --- site/.dockerignore | 12 ++++++++++++ site/Dockerfile | 19 +++++++++++++++++++ site/README.md | 24 ++++++++++++++++++++++++ site/docker-compose.yml | 11 +++++++++++ 4 files changed, 66 insertions(+) create mode 100644 site/.dockerignore create mode 100644 site/Dockerfile create mode 100644 site/docker-compose.yml diff --git a/site/.dockerignore b/site/.dockerignore new file mode 100644 index 00000000..602170fb --- /dev/null +++ b/site/.dockerignore @@ -0,0 +1,12 @@ +.git +.gitignore +.dockerignore +Dockerfile +docker-compose.yml +README.md +*.md +*.bak +*.log +node_modules +.env +.env.* \ No newline at end of file diff --git a/site/Dockerfile b/site/Dockerfile new file mode 100644 index 00000000..91922c12 --- /dev/null +++ b/site/Dockerfile @@ -0,0 +1,19 @@ +# Dockerfile for hatch.surf homepage +# Uses nginx:alpine to serve static files + +FROM nginx:alpine + +# Remove default nginx static assets +RUN rm -rf /usr/share/nginx/html/* + +# Copy static files from site directory +COPY . /usr/share/nginx/html/ + +# Copy custom nginx configuration for SPA routing if needed +# COPY nginx.conf /etc/nginx/conf.d/default.conf + +# Expose port 80 +EXPOSE 80 + +# Start nginx +CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file diff --git a/site/README.md b/site/README.md index 4aa569ad..8ce04d85 100644 --- a/site/README.md +++ b/site/README.md @@ -79,6 +79,30 @@ Or with Node.js: npx serve site ``` +### Docker + +To run the site in Docker: + +```bash +cd site +# Build and run with docker compose +docker compose up -d + +# Or build and run with docker +docker build -t hatch-homepage . +docker run -d -p 3000:80 hatch-homepage +``` + +The site will be available at http://localhost:3000 + +To stop the container: + +```bash +docker compose down +# Or +docker stop $(docker ps -q --filter ancestor=hatch-homepage) +``` + ## SEO Checklist - [x] H1 = title diff --git a/site/docker-compose.yml b/site/docker-compose.yml new file mode 100644 index 00000000..4966c126 --- /dev/null +++ b/site/docker-compose.yml @@ -0,0 +1,11 @@ +services: + hatch-homepage: + build: . + ports: + - "3000:80" + volumes: + - .:/usr/share/nginx/html:ro + environment: + - NGINX_HOST=localhost + - NGINX_PORT=80 + restart: unless-stopped \ No newline at end of file