From df636972eb6b4d3e4db28cc57612abde7de7f154 Mon Sep 17 00:00:00 2001 From: Jayant Pahuja Date: Fri, 23 Sep 2022 19:36:39 +0530 Subject: [PATCH] WIP --- examples/HydrogenWithDocker/Dockerfile | 22 +++++++++++ examples/HydrogenWithDocker/README.md | 34 +++++++++++++++++ examples/HydrogenWithDocker/ngnix.conf | 51 ++++++++++++++++++++++++++ 3 files changed, 107 insertions(+) create mode 100644 examples/HydrogenWithDocker/Dockerfile create mode 100644 examples/HydrogenWithDocker/README.md create mode 100644 examples/HydrogenWithDocker/ngnix.conf diff --git a/examples/HydrogenWithDocker/Dockerfile b/examples/HydrogenWithDocker/Dockerfile new file mode 100644 index 0000000..3fb3eee --- /dev/null +++ b/examples/HydrogenWithDocker/Dockerfile @@ -0,0 +1,22 @@ +# GET +FROM node:18 AS build-env +# Add all files in the current directory to the app +ADD . /app + +WORKDIR /app +# Install required depedencies. +RUN yarn +# Generate build +RUN yarn build --target node +# +FROM gcr.io/distroless/nodejs:18 AS run-env +# Set environment variable. +ENV NODE_ENV production + +COPY --from=build-env /app /app + +EXPOSE ${PORT:-8080} + +WORKDIR /app +# Entry point +CMD ["dist/node/index.js"] \ No newline at end of file diff --git a/examples/HydrogenWithDocker/README.md b/examples/HydrogenWithDocker/README.md new file mode 100644 index 0000000..43a9fbb --- /dev/null +++ b/examples/HydrogenWithDocker/README.md @@ -0,0 +1,34 @@ + +**What this is** + +This folder contains required files for deploying a Hydrogen based storefront on EC2. + +**Pre-requisites** + +* Working installations of docker. Follow this guide to install Docker on Ubuntu https://docs.docker.com/engine/install/ubuntu/. +* Valid `Dockerfile` which can generate a build. Refer to `Dockerfile` in the folder. +* Use`ngnix.conf` + + + +# Docker Related Command + + +* View Docker Logs for a container + ``` +sudo docker logs --follow + ``` + + +* Run the Docker container + + ``` +sudo docker run --restart unless-stopped -e ENV_VAR_NAME=ENV_VAR_VALUE -p 8080:8080 -d --name + + ``` + +* Log into docker container + + ``` +sudo docker exec -it bash +``` \ No newline at end of file diff --git a/examples/HydrogenWithDocker/ngnix.conf b/examples/HydrogenWithDocker/ngnix.conf new file mode 100644 index 0000000..4a78e0c --- /dev/null +++ b/examples/HydrogenWithDocker/ngnix.conf @@ -0,0 +1,51 @@ +upstream app{ + server 127.0.0.1:8080; + server 127.0.0.1:8081; + +} + + +server { + server_name ; + + location / { + # First attempt to serve request as file, then + # as directory, then fall back to displaying a 404. + root /var/www/client; + try_files $uri @docker; + expires max; + add_header Cache-Control "public"; + } + + location @docker { + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Host $host; + proxy_pass http://app; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + } + + + + listen 443 ssl; # managed by Certbot + ssl_certificate /etc/letsencrypt/live//fullchain.pem; # managed by Certbot + ssl_certificate_key /etc/letsencrypt/live//privkey.pem; # managed by Certbot + include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot + ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot + +} + + + +server { + if ($host = ) { + return 301 https://$host$request_uri; + } # managed by Certbot + + server_name ; + + listen 80; + return 404; # managed by Certbot + +}