部署FME服务器与Docker撰写

作为一个多容器应用程序,FME服务器支持使用Docker组合进行部署。我们建议,只有当您以前使用过Docker并了解它的体系结构时,才能以这种方式部署FME服务器。

关于FME服务器的Docker编写文件

服务

撰写文件为组成FME服务器的每个服务定义了容器。可以指定这些服务名称来启动、停止、扩展或在特定容器上运行其他命令。它们还用作容器的主机名,以便相互通信。

服务

描述

fmeservercore FME服务器核心
fmeserverwebsocket WebSocket服务器
fmeserverweb FME服务器Web服务
fmeserverdb FME服务器数据库
fmeserverengine FME引擎
fmeserverqueue 工作队列
nginx FME服务器的反向代理;接收所有web流量并将其转发到正确的容器。还负责处理https连接。

另请参阅

港口

FME服务器部署将三个端口映射到主机:

一旦部署了FME服务器,对主机上这些端口的任何请求都将路由到适当的容器。这意味着您可以访问主机端口443上的FME服务器Web用户界面,即使fmeserverweb服务实际上是在容器中运行的。

撰写文件定义了两个主要卷:

  • 数据库——fmeserverdb服务存储其数据库文件的地方。
  • FME服务器系统共享——实际上由几个卷组成,这些卷限制从不需要它的容器访问某些文件夹。

部署和管理FME服务器

下载Docker撰写文件的FME服务器

Docker容器使用标记进行版本控制,标记在图像名称后面用冒号指定。例如,亚搏在线safesoftware / fmeserver-engine: 2018.1.1-20181120有图片名称亚搏在线safesoftware / fmeserver-engine和标签2018.1.1-20181120.

以下标签适用于不同版本的FME服务器:

  • 每个官方主要版本的标签。例如,2017.0,2017.1,2017.1.1.
  • 公开的特定构建的数量的标记。例如,18505.

如果将热修复应用于特定的版本或构建,则使用日期更新标记。例如,2018.1.1-20181120.我们建议下载标记为所需版本的最新日期的文件。

Docker撰写文件和Kubernetes快速启动脚本可在http://fme.ly/container-deployments对于FME服务器容器部署的每个可用标记。

使用docker-compose命令

使用docker-compose命令创建、启动和停止FME服务器。此命令在当前目录中查找名为docker-compose的文件。并将其用于部署内容的定义。或者,可以使用- f参数。下面的示例命令假设是docker-compose。yaml存在于当前工作目录中。

来启动一个新的FME服务器堆栈

使用向上参数,以调出docker- composition .yaml中定义的一组新容器。通过在- d参数在后台运行。

docker-compose了-

Docker Compose创建在Compose文件中定义的网络、卷和容器。完成后,可以连接到FME服务器的Web用户界面在https://localhost/上。管理员用户名和密码默认为管理管理,分别。你可以改变这个用户页面。

停止正在运行的FME服务器

docker-compose停止

启动FME服务器

docker-compose开始

重启FME服务器

docker-compose重启

在撰写文件中指定服务

可以指定服务在撰写文件中定义启动和停止。例如,只停止FME服务器的Web服务容器:

docker-compose停止fmeserverweb

按比例缩放FME引擎

您可以通过启动额外的FME引擎容器来扩展正在运行的引擎的数量。(有关更多信息,请参见配置要启动的FME引擎的数量)。

使用规模命令来指定命令执行后需要的FME引擎的数量。下面的命令将引擎的数量扩展到4个:

docker- composition -scale fmeserverengine=4

删除FME服务器部署

下来命令将销毁在堆栈中创建的所有容器、卷和网络。的- v参数也删除卷。

docker-compose下来- v

没有- v参数,数据库和FME服务器系统共享卷不会被销毁,并且如果再次使用相同的堆栈启动向上,不会丢失任何数据。

升级FME服务器部署

  1. 上的FME服务器进行本地备份备份和恢复网页的用户界面。请确保将此文件保存在FME服务器之外的某个地方资源文件夹,因为那些将被删除。
  2. 移除容器、卷和网络。
  3. docker-compose下来- v

  4. 下载容器的最新版本。
  5. docker-compose拉

  6. 部署容器的新版本。
  7. docker-compose了-

  8. 上还原备份备份和恢复上传你在步骤1中保存的备份文件。

在一台机器上运行多个FME服务器

虽然不建议在生产机器上运行多个FME服务器堆栈,但是如果您正在FME服务器的多个版本上构建原型或测试工作流,那么在一台机器上运行多个FME服务器堆栈可能会很有用。亚搏在线

在同一台机器上运行多个FME服务器时,请记住以下几点:

  • 启动堆栈时,docker-compose在所有容器、卷和网络前加上一个用下划线分隔的项目名。创建堆栈时,项目名称默认为工作目录的名称。在下面的图片中,堆栈是在一个名为server的目录中启动的,因此server_被预先设置为所有创建的资源:
  • 如果docker-compose。yml files for each deployment are not in directories with different names, you can pass in a project name when launching the stack with the- p国旗:

    docker-compose -p projectname up -d

  • 自几港口映射到主机,同一端口不能使用两次。您必须确保一次只启动一个,或者更改端口映射。例如,要使用端口8080而不是443,使用以下命令从fmeserverweb容器中删除重定向端口80:8080:
  • 外部端口=8080 docker-compose -d

    这将所有相关容器上的外部端口设置为8080并打开FME服务器。

禁用https

运行FME服务器没有https:

  1. 从Docker撰写文件(第80行:8080)中的nginx容器中删除暴露的端口80。
  2. 启动FME服务器WEBPROTOCOL = httpEXTERNALPORT = 80变量。例如:
  3. WEBPROTOCOL=http EXTERNALPORT=80 docker-compose -d

使用自定义TLS/SSL证书

警告:在将证书安装到nginx容器之前,确保证书的副本存储在不同的位置。容器中的代码可能有未测试的覆盖证书的“边缘”情况。

要使用有效的SSL证书,请在FME服务器主机上的目录中提供以下文件:

  • nginx。crt: The certificate, including full certificate chain, if necessary.
  • nginx。key: Private key used to generate the certificate.

提供后,通过设置SSLCERTLOCATION = /道路/ /证书变量。

另请参阅