daocloud介绍
daocloud提供基于docker进行持续集成的服务,使用它可以很方便的完成项目的自动化构建以及持续发布等功能。
什么是「简单的html5应用」
只有前端页面,并且使用nginx提供服务。
部署大致解决方案
本文假设一个使用场景:拥有自己的主机,并且绑定到了daocloud上,然后想通过daocloud进行持续化地部署到自己的主机上。如果想要部署一个纯前端项目,需要把nginx集成进去,然后使用nginx来提供服务。
构建应用前的准备
在构建应用之前,你需要改装自己的程序,添加Dockerfile文件,配置好所需要的nginx配置文件。比如我有一个应用叫myapp,其目录结构为:
myapp/ #应用根目录
├── myapp/ # 具体的应用目录
│ ├── images/ # 图片
│ ├── index.html # 默认的检索html
│ ├── scripts/ # js文件夹
│ └── styles/ # 存放css的文件夹
├── Dockerfile # Dockerfile
├── myapp.conf # 本应用的nginx配置文件
└── log/ # log文件
Dockerfile的内容:
# 选择nginx服务
FROM nginx:1.9.5
# copy代码
COPY . /src
# 添加nginx配置文件
COPY myapp.conf /etc/nginx/conf.d/
# 去掉默认的nginx配置文件
RUN rm /etc/nginx/conf.d/default.conf
myapp.conf 内容:
server {
listen 80;
server_name localhost;
access_log /src/log/myapp.access.log;
error_log /src/log/myapp.error.log;
# 这里你还可以选择根据需要配一些gzip等选项
location / {
root /src/myapp/;
}
}
然后将应用提交到github上,比如具体为:xiaohuruwei/myapp.git
以上已经包含全部必须的材料了,下面进入daocloud环节。
使用daocloud进行持续构建镜像以及发布
因为前面的步骤已经构建好了一个支持docker的代码版本,而且不需要外联像mysql这样的外部服务,因此可以直接将其当做一个但应用的镜像来构建。
在这方面,daocloud已经有了完善的文档,可以直接参考其中的创建新项目章节,以及持续集成章节。
发布完成之后需要做的工作
发布完成之后,可以在daocloud上看到所创建的容器的具体信息。包括映射到宿主机上的端口号等等,为方便后面的叙述,这里假设映射出的端口号为8888。因为是发布到自己的主机上,所以还需要自己配置域名以及nginx反向代理来对外提供访问服务。假设有一个域名已经绑定在了自己的主机上,这里假设为xiaohuruwei.com.
登陆自己的主机,并配置nginx文件,如果是使用apt-get一类的包管理工具安装的,那么应该是在/etc/nginx/conf.d/目录下添加 myapp.conf:
server {
listen 80;
server_name xiaohuruwei.com;
access_log /var/log/nginx/myapp.access.log;
error_log /var/log/nginx/myapp.error.log;
client_max_body_size 200m;
# 可以根据需要设置其他配置项
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8888;
}
}
然后访问xiaohuruwei.com就可以看到内容了
另外,需要在使用daocloud的时候,将自动构建和持续发布都打开,这样下次使用时,只需要往github推代码时,触发了你设定的更新规则,就会持续构建镜像并发布了。