运行nginx节点并使用docker letsencrypt

我试图运行docker的下面的场景,但我无法抓住几件事情。 基本上我想在同一台机器上运行

example.com,www.example.com --> Static web site api.example.com --> NodeJS server Nginx will run as load balancer and Lets encrypt certificate will be used. 

这是我想出来的docker-compose.yml文件。

 version: '3.1' services: load_balancer: image: jwilder/nginx-proxy ports: - 80:80 - 443:443 volumes: - /var/run/docker.sock:/tmp/docker.sock:ro - /usr/secrets/load_balancer/certs:/etc/nginx/certs:ro - html:/usr/share/nginx/html - vhost:/etc/nginx/vhost.d labels: com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy: "true" letsencrypt_companion: image: jrcs/letsencrypt-nginx-proxy-companion volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - /usr/secrets/load_balancer/certs:/etc/nginx/certs:rw - html:/usr/share/nginx/html - vhost:/etc/nginx/vhost.d website: build: ./website container_name: website environment: - LETSENCRYPT_HOST=example.com,www.example.com - LETSENCRYPT_EMAIL=example@email.com - VIRTUAL_HOST=example.com,www.example.com - VIRTUAL_PORT=80 restart: unless-stopped api: build: ./api container_name: api environment: - LETSENCRYPT_HOST=api.example.com - LETSENCRYPT_EMAIL=example@email.com - VIRTUAL_HOST=api.example.com - VIRTUAL_PORT=5000 env_file: ./api.env restart: unless-stopped volumes: vhost: html: 

我的问题是

  1. 我应该把静态网页放在./web/Docker文件里面?

  2. 对于NodeJS应用程序,我应该使用pm2还是pm2-docker或其他方法? 我读到,因为这个东西叫重新这是必要的。 我会欣赏任何指针。 谢谢。