对于作者来说,Docker可以提供平台一致性安装环境(可以运行在Windows、macOS和Linux系统)。一般Node.js、Elasticsearch和Nginx都需要不同安装步骤,如果运行在Docker环境中只需要定义好不同配置文件,就可以运行在任何Docker环境。另外,由于应用各自运行在隔离容器中,与本地宿主机关系很小,因此类似于“但是我这可以运行啊”这种排错问题就很少会出现。
2.1 安装Docker和Docker-Compose
本项目只需要Docker和Docker-Compose环境。后者是Docker官方工具,在单一应用栈中编排定义多个容器配置。
安装Docker——https://docs.docker.com/engine/installation/
安装Docker Compose——https://docs.docker.com/compose/install/
2.2 设置项目安装目录
创建一个项目根目录(例如guttenberg_search),在其下定义两个子目录:
/public——为前端 Vue.js webapp存放数据。
/server——服务器端Node.js 源文件。
2.3 添加Docker-Compose配置文件
下一步,创建docker-compose.yml文件,定义应用栈中每个容器的配置:
gs-api——Node.js 容器后端应用逻辑。
gs-frontend——为前端webapp提供服务的Nginx容器。
gs-search——存储搜索数据的Elasticsearch容器。
version: '3'
services:
api: # Node.js App
container_name: gs-api
build: .
ports:
- "3000:3000"# Expose API port
- "9229:9229"# Expose Node process debug port (disable in production)
environment: # Set ENV vars
- NODE_ENV=local
- ES_HOST=elasticsearch
- PORT=3000
volumes: # Attach local book data directory
- ./books:/usr/src/app/books
frontend: # Nginx Server For Frontend App
container_name: gs-frontend
image: nginx
volumes: # Serve local "public"dir
- ./public:/usr/share/nginx/html
ports:
- "8080:80"# Forward site to localhost:8080
elasticsearch: # Elasticsearch Instance
container_name: gs-search
image: docker.elastic.co/elasticsearch/elasticsearch:6.1.1
volumes: # Persist ES data in seperate "esdata"volume
- esdata:/usr/share/elasticsearch/data
environment:
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-88488-2.html
记着了——浙江财经学院的谢做死教授
另一方面要通过实际行动向美国表达坚决的意志