[编者的话] 当文字偶遇代码,当程序插上了翅膀,让分享成为我们彼此沟通的语言。我们期待可以构建这样一个平台让开发者们看到你们的智慧,挖掘你们的才华,让彼此在开源的路上不再孤独。“DaoCloud分享写作计划”已全面启动,欢迎投稿。
作者:Geekwolf
首先,StartBBS 是一款优雅、开源、轻量社区系统,基于MVC架构,采用PHP+MySQL
实验环境
- 基于DaoCloud平台构建镜像容器
- 基础镜像采用ubuntu:trusty
- 测试机centos6.6 x64
创建步骤
测试机安装docker并编写dockerfile文件
yum -y update
yum -y install docker-io
service docker start
chkconfig docker on
更改docker的默认mirrors(可以注册DaoCloud有免费加速镜像下载地址)
使用Docker的时候,需要经常从官方获取镜像。由于显而易见的网络原因,获取镜像的过程较慢,令人非常痛苦。因此DaoCloud推出Docker加速器解决这个难题。Docker加速器利用Docker官方的Mirror机制,一次配置,无缝使用。
sed -i 's#other_args=#other_args="--registry-mirror=http://7de036e1.m.daocloud.io"#g' /etc/sysconfig/docker
下载基础镜像
docker pull ubuntu:trusty
在Github上fork StartBBS
git clone https://github.com/geek-linux/startbbs.git
cd startbbs
创建Dockerfile文件
FROM ubuntu:trusty
MAINTAINER Geekwolf
RUN apt-get -y update && apt-get -y install mysql-client php5 ImageMagick apache2 php5-gd php5-mysql
RUN rm -rf /var/www/html/*
ADD . /var/www/html
RUN chown -R www-data:www-data /var/www/html
WORKDIR /var/www/html
RUN echo "ServerName startbbs.daoapp.io">>/etc/apache2/apache2.conf
RUN sed -i "s#'localhost'#getenv("MYSQL_PORT_3306_TCP_ADDR")#g" app/config/database.php && sed -i "s#'startbbs'#getenv("MYSQL_INSTANCE_NAME")#g" app/config/database.php && sed -i "s#'root'#getenv("MYSQL_USERNAME")#g" app/config/database.php && sed -i "s#'123456'#getenv("MYSQL_PASSWORD")#g" app/config/database.php
EXPOSE 80
CMD ["/usr/sbin/apache2ctl","-D","FOREGROUND"]
注:ServerName可以根据DaoCloud平台自定义一个daoapp.io的二级域
根据Dockerfile从基础镜像中创建StartBBS web镜像
cd startbbs
docker build -t startbbs .
docker run --name=startbbs -it startbbs:latest /bin/bash
无ssh登陆容器查看是否正常
nsenter --target $(docker inspect --format "{{.State.Pid}}" startbbs) --mount --uts --ipc --net --pid
最后,将Dockerfile文件提交到StartBBS代码库根目录
git add Dockerfile
git commit -am "Add Dockerfile"
git push origin master
在DaoCloud平台构建镜像
登陆 https://www.daocloud.io ,选择
代码构建
--创建项目
设置代码源Github,选择代码库StartBBS,暂时关闭
持续集成
--发布应用镜像:镜像仓库
--开始创建
选择
服务集成
--选择MySQL镜像
--创建服务实例
--我的服务
查看数据库账号信息此处简单起见使用DaoCloud自带的phpMyAdmin镜像(
镜像仓库
)创建容器,并导入StartBBS的sql文件(data/db/startbbs.sql
)创建StartBBS容器,
镜像仓库
--选择StartBBS镜像
--点击部署
--容器名字:StartBBS--选择相应的容器配置--点击服务&环境
--绑定MySQL容器
--立即部署
--容器启动后,设置域名
为 http://startbbs.daoapp.io ,绑定自有域名 http://bbs.simlinux.com ,增加dns解析cname
到z3y206n242.daoap.me
即可访问 http://startbbs.daoapp.io 初始化StartBBS,到此StartBBS容器安装完成
创建的容器在 https://dashboard.daocloud.io 即可看到
本文来自“DaoCloud分享写作计划”,这项计划旨在为开发者提供一个平台,分享使用Docker的心得体会和技术经验。DaoCloud将为文章作者提供一定的物质奖励,具体方式请访问:DaoCloud写作分享计划 ,欢迎Docker爱好者和DaoCloud用户踊跃投稿。