使用Vue.js创建suggest表单的方法2
上一次我们已经成功在Docker中运行了vue.js。
第二次的目标是在Docker中创建Elasticsearch环境。
想要做的事情的复习
我会制作一个输入关键词后显示关键词候选区和相关区域(类似于“是这个吗?”之类的提示)的东西。
建立Elasticsearch环境
创建Dockerfile
参考Docker安装Elasticsearch后创建Dockerfile。
亚马逊 Elasticsearch 服务支持 Elasticsearch 版本达到 6.7。这次我们将使用 6.7 版本。
目录结构将按以下方式进行设置
$ tree
.
├── Makefile
├── docker-compose.yml
├── dockerfile
│ ├── elasticsearch
│ │ └── Dockerfile
│ └── vue
│ └── Dockerfile
FROM docker.elastic.co/elasticsearch/elasticsearch:6.7.2
RUN elasticsearch-plugin install analysis-kuromoji
我正在安装kuromoji,因为我想要处理日语。
创建一个docker-compose.yaml文件。
version: '3'
services:
vue_app:
build: dockerfile/vue
ports:
- 9000:9000
volumes:
- .:/app
stdin_open: true
tty: true
command: /bin/sh
elasticsearch:
build: dockerfile/elasticsearch
environment:
- discovery.type=single-node
- xpack.security.enabled=false
- http.host=0.0.0.0
- http.port=9200
- http.cors.enabled=true
- http.cors.allow-origin=http://localhost:9000
- http.cors.allow-methods=*
- http.cors.allow-headers=*
- http.cors.allow-credentials=true
- bootstrap.memory_lock=true
- 'ES_JAVA_OPTS=-Xms128m -Xmx128m'
ports:
- "9200:9200"
volumes:
- esdata1:/usr/share/elasticsearch/data
networks:
- esnet
volumes:
esdata1:
driver: local
networks:
esnet:
为了在删除容器后仍能使用数据,请创建一个数据卷。
另外,我们将在浏览器上设置CORS以便允许通过ES的API进行访问。
由于vuejs通过9200端口启动,因此我们已经允许了9200的访问。
3. 启动
$ make start
4.确认启动
$ curl -XGET localhost:9200
{
"name" : "xxx",
"cluster_name" : "docker-cluster",
"cluster_uuid" : "xxx",
"version" : {
"number" : "6.7.2",
"build_flavor" : "default",
"build_type" : "docker",
"build_hash" : "56c6e48",
"build_date" : "2019-04-29T09:05:50.290371Z",
"build_snapshot" : false,
"lucene_version" : "7.7.0",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
下次计划准备测试数据给Elasticsearch。