使用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。

广告
将在 10 秒后关闭
bannerAds