OS X
注:在搭建环境之前,建议先将 OS X 系统升级到最新版本。以下介绍如无特别说明均是在 El Capitan 系统下进行的。
安装软件环境
安装 Homebrew
Homebrew 是 OS X 系统上的包管理工具,使用它可以方便安装和管理所需要的其它软件。
Homebrew 的安装非常简单,只需要在 Terminal 窗口下执行命令:
ruby−e" (curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”
第一次使用 Homebrew 安装软件之前,最好先执行 brew doctor 命令检查系统当前配置是否满足运行 Homebrew 的要求,如果不满足需要根据此命令提示的信息进行修改。
Homebrew 的常用命令如下:
brew list 列出当前已经安装的软件包
brew search <keyword> 按照 keyword 在 Homebrew 的软件库中检索软件包
brew install <package> 安装指定名称的软件包
brew uninstall <package> 卸载指定名称的软件包
brew info <package> 查询指定名称的软件包的信息
brew update 更新 Homebrew 本地软件包索引库
brew upgrade 升级所有已经安装的软件包
因此,如需升级已经安装的软件,可以执行如下命令:
$ brew update && brew upgrade
安装 Homebrew Cask
Cask 是 Homebrew 的一种扩展机制,可以简洁、优雅的安装一些较大型的二进制应用程序,比如 Google Chrome 或者 Oracle VirtualBox 之类的。可以使用以下命令安装 Cask:
$ brew install caskroom/cask/brew-cask
安装 Git
Git 是被社区广泛使用的开源版本管理工具,使用 Git 来管理的最著名的项目当属 Linux 内核。有关 Git 的使用方法请自行搜索相关文档。值得一提的是,基于 Git 工具产生了一个以代码协作开发为基础的社交网站,即大名鼎鼎的 Github,由此也催生了社会化编程的新模式。可以用 Homebrew 来直接安装 Git:
$ brew install git
安装 Node.js
CDE.IO 一些源代码(CoffeeScript 代码)的编译需要使用 Node.js 环境。Node.js 是基于 Google Chrome V8 引擎开发的 JavaScript 运行时环境,具有事件驱动和非阻塞 I/O 模型等特点,并且轻巧与高效。
Node.js 的版本迭代非常快,为了能够更好的在各个版本间进行切换,我们使用 Node Version Manager(nvm)来管理 Node.js。
首先需要安装 nvm:
$ brew install nvm
安装完成以后,Homebrew 会提示对 Bash 的配置文件进行一些修改。编辑或新建 ~/.bash_profile 文件,然后视情况添加如下内容:
export NVM_DIR=~/.nvm
source $(brew –prefix nvm)/nvm.sh
提示:如果由于操作失误,清空或没有看清相关提示信息的时候,可以使用 brew info nvm 命令重新查看。
nvm 的一些常用命令如下:
nvm ls 列出当前系统已经安装的 Node.js 版本
nvm ls-remote 列出所有远程可用的 Node.js 版本
nvm install <version> 安装指定的 Node.js 版本
nvm use <version> 切换到指定的 Node.js 版本
nvm uninstall <version> 卸载指定的 Node.js 版本
截止到文档编写时,Node.js 的最新版本是 5.2.0,因此可以用如下命令来安装:
$ nvm install 5.2.0
安装完成以后用下面的命令来启用:
$ nvm use 5.2.0
提示:如果想要保持始终安装最新版本的 Node.js,可以使用命令 nvm install 5。
安装 CoffeeScript
编译 CoffeeScript 代码需要在全局安装 coffee 命令。注意,因为 CoffeeScript 语法规范的更新,CDE.IO 的代码不能使用最新版本的 coffee 命令编译,最高版本支持到 1.8.0。有关详细信息请参考 1.9.0 版本 Change Log 的第三条。
安装方法如下:
$ npm install -g coffee-script@1.8.0
安装 JDK
可以使用 brew cask 命令来安装最新版本的 JDK。截止到文档编写时,最新版本是 JDK8u66。
安装方法如下:
$ brew cask install java
注:在安装过程中会提示输入当前用户的密码。
安装完成以后,需要在 Bash 的配置文件中添加 JAVA_HOME 环境变量。编辑或新建 ~/.bash_profile 文件,视情况添加如下命令:
export JAVA_HOME=/Library/Java/Home
关闭 Terminal 窗口再重新打开,执行 echo $JAVA_HOME 命令,能够获得相同的路径输出就说明设置成功。
安装 Maven
Maven 是 Apache 出品的一款项目构建管理工具,使用 Maven 可以按照统一的规范对项目进行管理,并实施构建、运行测试、生成报告和文档等。用 Homebrew 可以直接安装 Maven:
$ brew install maven
安装 MySQL
Homebrew 也可以直接安装 MySQL 服务:
$ brew install mysql
安装完成以后,根据 Homebrew 的提示,要运行 mysql_secure_installation 命令,为 MySQL 进行安全配置,但在此之前要先启动 MySQL 服务器。
mysql.serverstart mysql_secure_installation
然后根据提示完成配置即可。
注:为了方便后续配置,这里将 MySQL root 用户的密码设置成 mysecretpassword。
Homebrew 还提示了一些关于如何让 MySQL 开机自动运行的方法,请根据提示信息操作即可。想要手动停止 MySQL 服务器只需要运行:
$ mysql.server stop
提示:同样可以使用 brew info mysql 来再次查看安装之后输出的提示信息。
为了便于数据库连接,我们需要统一一下数据库服务器的本地域名。编辑 /etc/hosts 文件(需要输入当前用户密码),添加如下内容:
127.0.0.1 mysql
即把域名 mysql 解析为本地 IP 地址 127.0.0.1。
Windows
以下配置过程在 Windows 10 系统上测试通过。
安装软件环境
在没有特别说明的情况下,以下操作都是在命令提示符窗口下完成的。但需要注意的是,因为安装过程涉及到系统级别的变更,需要使用管理员身份打开命令提示符窗口。方法是在程序图标上右击,并选择“以管理员身份运行”。
安装 Chocolatey NuGet
Chocolatey NuGet 是 Windows 系统上的包管理工具,同 Ubuntu 上的 apt-get,OS X 上的 Homebrew 一样,使用 Chocolatey NuGet 也可以方便的安装和管理所需要的软件。
运行以下命令来安装 Chocolatey NuGet:
C:> @powershell -NoProfile -ExecutionPolicy Bypass -Command “iex ((new-object net.webclient).DownloadString(‘https://chocolatey.org/install.ps1‘))” && SET PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin
为了在卸载的时候 Chocolatey NuGet 会自动运行卸载程序,需要为 Chocolatey NuGet 设置一个参数:
C:> choco feature enable -n autoUninstaller
安装 Git
C:> choco install git.install –params=”/GitAndUnixToolsOnPath /NoAutoCrlf” -y
安装 Node.js
C:> choco install nodejs.install -y
安装 CoffeeScript
为了使得上一步安装的 Node.js 软件生效,需要退出当前的命令提示符窗口,再重新打开。注意重新打开的时候要使用管理员权限。
C:> npm install -g coffee-script@1.8.0
安装 JDK
C:> choco install jdk8 -y
安装 Maven
由于 Chocolatey NuGet 官方提供的安装包无法成功安装 Maven,因此这一步需要手工进行。
到 Maven 网站上下载最新版本的压缩包;
将压缩包解压到某个目录,例如 C:\Maven;
设置环境变量 MAVEN_HOME,并指向解压后的 Maven 目录;
修改 PATH 环境变量,添加搜索路径 %MAVEN_HOME%\bin;
设置环境变量 MAVEN_OPTS,值为 -Dfile.encoding=UTF-8。
打开一个全新的命令提示符窗口,执行 mvn –version 命令,如果输出以下信息则说明安装成功。
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T08:41:47-08:00)
Maven home: C:\Maven\bin..
Java version: 1.8.0_65, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk1.8.0_65\jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: “windows 10”, version: “10.0”, arch: “amd64”, family: “dos”
提示:
根据 CPU 架构、操作系统、安装版本和安装路径的不同,输出的信息会有所差别;
platform encoding 的值应该是 UTF-8,如果显示为 GBK,请查看 MAVEN_OPTS 环境变量的设置是否正确。
安装 MySQL
使用 Chocolatey NuGet 安装后的 MySQL 服务无法自动配置,而手动配置的过程又非常繁琐,因此还是使用官方提供的安装程序来完成安装。
首先在 MySQL 网站上下载 Windows 安装程序(最好下载体积较小的在线安装包,因为我们只需要安装其中的一个组件——MySQL 服务器)。截止到文档编写时,MySQL Server 的最新版本为 5.7.9。下载完成以后运行安装程序,具体步骤如下:
安装程序启动: 启动界面
同意授权声明: 同意授权界面
选择需要安装的组件,这里我们选择 Server only: 选择安装组件界面
准备下载所选择的组件: 准备下载界面
正在下载: 下载界面
正在安装: 安装界面
安装完成: 完成安装界面
准备配置: 准备配置界面
服务器类型和网络配置: 服务器类型和网络配置界面
账户和角色配置。为了后续配置方便,在这里统一将 root 用户的密码设置为 mysecretpassword: 账户和角色配置界面
Windows 服务配置: Windows 服务配置界面
准备应用服务器配置: 准备应用服务器配置界面
正在应用服务器配置: 正在应用服务器配置界面
应用服务器配置完成: 应用服务器配置完成界面
产品配置摘要界面(只有一个产品): 产品配置摘要界面
安装完成: 安装完成界面
安装完成以后还需要进行两步后续配置:
将 MySQL Server 的 bin 目录添加到 PATH 路径中,默认安装的情况下 bin 目录所在的路径为 C:\Program Files\MySQL\MySQL Server 5.7\bin;
修改 C:\Windows\System32\drivers\etc\hosts 文件(此文件需要使用管理员权限修改),添加以下内容,将 mysql 域名解析到本地 IP 地址 127.0.0.1。
127.0.0.1 mysql
Docker
Docker 是一款基于 Linux Containers 技术构建的开源容器引擎,用来将应用程序及其所有依赖打包进一个标准化单元,即所谓的“容器”。Docker 利用 Linux 内核的资源隔离特性,允许独立的容器在一个 Linux 实例中运行,从而避免启动和管理虚拟机的巨大开销。
有关 Docker 的详细介绍和产品优势,请参考官方文档,也可以在网络上找到大量有关 Docker 的有趣资料。
在这里介绍使用 Docker 模式来搭建开发环境,主要目的是为了最大程度上保持环境的统一,尤其是当企业内部既有 OS X 用户还有 Windows 用户,且最终发布上线的系统又是运行在 Linux 上的时候,就显得非常有意义了。Docker 能够有效解决“为什么在我这里可以运行,但在你们那里就不可以”等类似的问题。
注:截止到文档编写时,Docker 的最新版本为 1.9.1。以下的安装过程均基于此版本验证通过。
在这里,我们只介绍在桌面系统上搭建 Docker 开发环境的具体方法。
准备
在正式开始介绍如何搭建 Docker 环境之前,需要先了解一些有关 Docker 生态系统的知识。
Docker Engine
Docker 平台的核心是 Docker Engine。Docker Engine 是一个轻量级的运行时环境和一个可以构建与运行 Docker 容器的强健工具。有关 Docker Engine 的架构和工具的详细使用方法请参考官方文档。
在前面的介绍中说过,Docker 是一种容器技术,可以免除使用虚拟机所带来的开销。理论上讲,应该就不再需要安装像 VirtualBox 这类的虚拟机软件了。然而问题在于 Docker 是基于 LXC 技术实现的,也就是说只有支持 LXC 的 Linux 系统才能原生的运行 Docker。很显然 OS X 和 Windows 都不是 Linux,自然无法直接运行 Docker,所以才需要借助第三方虚拟化软件,在这些系统上虚拟一个 Linux 环境出来。其实不只是 VirtualBox,Docker 还支持很多虚拟化技术。
Docker Machine
Docker Machine 顾名思义,就是用来管理运行有 Docker 环境的计算机的,只不过这里的计算机并不局限于电脑、还包括云服务和数据中心等。Docker Machine 会自动准备主机、在上面安装 Docker Engine、并配置与 Docker Engine 通讯的 Docker 客户端。
因为 OS X 和 Windows 系统并不能直接支撑 Docker 运行,因此 Docker Machine 在这里的作用可以简单理解为是通过虚拟化软件创建一个虚拟机,并安装好一个含有 Docker Engine 的小型 Linux 操作系统,并提供简单的办法让 Docker 客户端工具可以与这个虚拟机中运行的 Docker Engine 通讯。这样一来,看上去就好像是 Docker 直接运行在这些系统上一样。
Docker Compose
通常一个复杂的应用程序是由若干更小的系统组合在一起工作的。例如一个标准的管理信息系统通常会由反向代理服务器、应用程序服务器和数据库服务器等组成,它们一并协同工作才能完成预定的功能。Docker 在实际工作时会将这些系统转换为相互关联的独立容器。为了避免构建、运行和管理每一个独立的容器,Docker Compose 可以通过配置文件定义一个多容器的应用程序,并制定各容器之间的依存关系,之后就可以使用一条命令来启动该程序了。应用程序的结构和配置是被统一管理的,使得编排起这样的一套应用变得简单而可以重复。
在 OS X 系统上部署 Docker 环境
Docker 官方网站发布有 Docker Toolbox 工具包,可以方便安装 Docker 所需要的各种软件及工具,但是为了能更好的理解 Docker 生态环境的构成以及运行方式,我们还是使用 Homebrew 来完成安装。
提示:在此之前,请确保系统中已经安装了 Homebrew 和 Cask,并且可以正常运行。有关安装的具体方法,请参见搭建开发环境下的 OS X 章节。
安装 VirtualBox
可以通过 Cask 来安装 VirtualBox:
$ brew cask install virtualbox
安装完成以后,VirtualBox 程序会出现在 Applications 文件夹中,但是我们在下面的介绍中不会直接使用这个程序。
安装 Docker Engine
使用 Homebrew 可以直接安装 Docker Engine:
$ brew install docker
安装完成以后,可以使用 docker 命令作为客户端工具来与 Docker Engine 通讯,完成管理 Docker 容器的工作。
安装 Docker Machine
同样的,Homebrew 也可以直接安装 Docker Machine:
$ brew install docker-machine
安装完成以后,可以使用 docker-machine 命令来管理运行有 Docker 环境的虚拟机。
安装 Docker Compose
$ brew install docker-compose
安装完成以后,可以使用 docker-compose 命令来编排 Docker 容器的运行。
编译与运行
创建 Linux 虚拟环境
使用 Docker Machine 来创建一个 Linux 虚拟环境:
$ docker-machine create -d virtualbox dev
各参数的含义如下:
create 是指调用创建虚拟机的子命令;
-d virtualbox 指定了虚拟机的驱动为 VirtualBox,等价于 --driver 参数;
dev 是虚拟机的名字,后面需要引用该虚拟机的时候,都可以使用这个名字。
如果是第一次运行此命令,会从网络上下载一个名为 boot2docker.iso 的文件,这个文件大约有 30M 大小,是一个轻量级的 Linux 发行版,完全在内存中运行,并预置了 Docker Engine 环境。该文件下载完成以后,Docker Machine 会创建名为 dev 的虚拟机,并加载 boot2docker.iso 文件以启动系统,这个系统的名字就叫做 Boot2Docker。
连接 Docker Engine
Boot2Docker 系统是运行在虚拟机中的,如果宿主机中的客户端想要访问虚拟机中的 Docker Engine,还需要进行一下配置:
eval" (docker-machine env dev)”
docker-machine env dev 命令是用来输出一些有关连接 dev 虚拟机的环境变量到控制台的。eval 命令就是在当前控制台设置这些环境变量。以上命令执行完成以后就可以使用 docker 命令来进行操作了,此时就好像 Docker Engine 是运行在宿主机上的一样。其实还可以在宿主机中启动多个虚拟 Linux 环境,以便隔离不同的环境。同样可以用上面的命令来切换 Docker 客户端具体连接哪一台虚拟机。
比如我们可以继续创建另外一台虚拟机,并切换连接:
docker−machinecreate−dvirtualboxprod eval "$(docker-machine env prod)”
下载 cdeio-docker 项目
cdeio-docker 项目是一个有关 CDE.IO 平台的 Docker 容器项目,里面包含了以 Docker 方式运行系统所需的全部项目源代码和配置文件,方便快速编译和启动系统。
使用以下命令来下载 cdeio-docker 项目的源代码:
$ git clone https://github.com/zyeeda/cdeio-docker
cdcdeio−docker
git submodule update –init
编译 origin 项目
首先将连接的虚拟机切换到 dev 上:
eval" (docker-machine env dev)”
在 cdeio-docker 项目下存在一个 docker-compose.yml 文件,这个文件定义了若干容器的描述信息,使用 docker-compose 命令就可以直接进行编译:
$ docker-compose run origin mvn clean install
run origin 是指运行 docker-compose.yml 配置文件中名为 origin 的容器,并在这个容器内运行 mvn clean install 命令执行编译。第一次运行此命令的时候,会从网络上下载包含有编译环境的 Docker 镜像,有关 Docker 镜像的相关内容,请参考官方文档。
编译 cdeio-runtime 项目
依然是在 cdeio-docker 目录下运行(下同):
$ docker-compose run runtime mvn clean install
编译 colorvest 项目
$ docker-compose run colorvest make clean compile
编译 cdeio-samples 项目
$ docker-compose run server mvn clean package
运行 cdeio-samples 系统
在开始运行系统之前,需要先记录一下虚拟机的 IP 地址,以便系统成功启动以后可以在浏览器中访问:
$ docker-machine ip dev
这条命令的含义就是输出名为 dev 的虚拟机的 IP 地址,记录下此 IP 地址,在这里我们假定其输出为 192.168.99.100。
然后执行以下命令:
$ docker-compose –service-ports run server
注意:这里要添加 –service-ports 参数,否则虚拟机中的端口无法暴露,也就无法对外提供服务。
查看输出日志,待显示系统成功启动以后,就可以打开浏览器,使用上面记录的 IP 地址来访问了,例如:http://192.168.99.100:8080/cdeio-samples。
在 Windows 系统上部署 Docker
同样的,我们使用 Chocolatey NuGet 来安装 Docker 所需的软件。
注意:需要以管理员身份打开命名提示符窗口来执行以下命令。关于 Chocolatey NuGet 的具体安装和使用方法请参见搭建开发环境下的 Windows 章节。
安装 VirtualBox
C:\Users\zyeeda> choco install virtualbox -y
安装 Docker Engine
C:\Users\zyeeda> choco install docker -y
安装 Docker Machine
C:\Users\zyeeda> choco install docker-machine -y
安装 Docker Compose
C:\Users\zyeeda> choco install docker-compose -y
https://zyeeda.gitbooks.io/cde-developer-manual/content/document/settings/log.html