js中的正则表达式 使用Docker和Elasticsearch搭建全文本搜索引(3)

电脑杂谈  发布时间:2018-02-22 10:22:50  来源:网络整理

- discovery.type=single-node

ports: # Expose Elasticsearch ports

- "9300:9300"

- "9200:9200"

volumes: # Define seperate volume for Elasticsearch data

esdata:

此文件定义应用栈,而不需要在本地宿主机安装Elasticsearch、Node.js、或者Nginx。每个容器都对宿主机开放相应端口,以便从宿主机访问和排错Node API,Elasticsearch实例和前端应用。

2.4 添加Dockerfile

本文使用官方的Nginx和Elasticsearch镜像,但是需要重新为Node.js创建自己的镜像。

在应用根目录定义一个简单的Dockerfile配置文件。

# Use Node v8.9.0 LTS

FROMnode:carbon

# Setup app working directory

WORKDIR /usr/src/app

# Copy package.json and package-lock.json

COPY package *.json./

# Install app dependencies

RUN npm install

# Copy sourcecode

COPY . .

# Start app

CMD [ "npm", "start"]

此Docker配置文件中将应用源码拷贝进来,安装了NPM依赖包,形成了自己的镜像。同样需要添加一个.dockerignore文件,避免不需要的文件被拷入。

node_modules/

npm-debug. log

books/

public/

注意:不需要将node_modules拷入,因为我们后续要用npm install来安装这些进程。如果拷贝node_modules到容器中容易引起兼容性问题。例如在macOS上安装bcrypt包,如果将此module拷入Ubuntu容器就会引起操作系统不匹配问题。

2.5 添加基础文件

测试配置文件前,还需要往应用目录拷入一下占位文件。在public/index.html中加入如下基础配置信息:

<html><body>Hello World From The Frontend Container </body></html>

下一步,在server/app.js中加入Node.js的应用文件。

constKoa = require( 'koa')

constapp = newKoa()

app.use( async(ctx, next) => {

ctx.body = 'Hello World From the Backend Container'

})

constport = process.env.PORT || 3000

app.listen(port, err => {

if(err) console.error(err)

console.log( `App Listening on Port ${port}`

})

最后,加入package.json节点配置文件:

{

"name": "guttenberg-search",

"version": "0.0.1",

"deion": "Source code for Elasticsearch tutorial using 100 classic open source books.",


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-88488-3.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...