Are you ready to launch your static website with HTML, Docker and NginxProxyManager. Check this out and do it yourself pretty easy.

Dockerfile

FROM node:lts-alpine

# install simple http server for serving static content
RUN yarn global add serve

# make the 'app' folder the current working directory
WORKDIR /usr/src/website

# copy project files and folders to the current working directory (i.e. 'app' folder)
COPY . .

EXPOSE 8080
CMD [ "serve", "-p", "8080"]

docker-compose.yml

version: "3.3"

services:
  ngxinxproxymanager:
    image: "jc21/nginx-proxy-manager:latest"
    container_name: yourproject-ngxinxproxymanager
    restart: unless-stopped
    ports:
      - "80:80" # Public HTTP Port
      - "443:443" # Public HTTPS Port
      - "81:81" # Admin Web Port
      # Add any other Stream port you want to expose
      # - '21:21' # FTP
    networks:
      - yourproject-network
    environment:
      # the SQLite DB file within the container
      DB_SQLITE_FILE: "/data/database.sqlite"
      # Uncomment this if IPv6 is not enabled on your host
      # DISABLE_IPV6: 'true'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

  website:
    build:
      context: ../website
      dockerfile: ../docker/website.Dockerfile
    container_name: yourproject-website
    restart: always
    ports:
      - "8081:8080"
    networks:
      - yourproject-network

networks:
  yourproject-network:
    driver: bridge

volumes:
  yourproject-db:
    driver: local
    driver_opts:
      type: none
      o: bind
      device: "${PWD}/db-data"

Related articles: