docker
docker

本文以构建CodeIgniter4 开发框架为例,
本文以上两篇文章为基础,继续讲解
1.初识docker
2.构建基础镜像

获取CodeIgniter4 最新版本
官网地址:https://codeigniter.org.cn/
文档地址:https://codeigniter.org.cn/user_guide/

进入我们的工作目录,目录文件如下

lixuan@lxmacpro dockerPro % ll
total 16
-rw-r–r– 1 lixuan staff 252 7 9 21:21 Dockerfile
drwxr-xr-x 3 lixuan staff 96 7 9 21:19 dockerConf
drwxr-xr-x 3 lixuan staff 96 7 7 22:09 html
-rw-r–r– 1 lixuan staff 92 7 7 23:34 start.sh

使用wget命令获取最新版本,等待下载完成

lixuan@lxmacpro dockerPro % wget https://github.com/codeigniter4/framework/archive/v4.0.3.zip
–2020-07-09 22:12:02– https://github.com/codeigniter4/framework/archive/v4.0.3.zip
正在解析主机 github.com (github.com)… 52.74.223.119
正在连接 github.com (github.com)|52.74.223.119|:443… 已连接。

v4.0.3.zip [ <=> ] 911.14K 9.71KB/s 用时 43s

2020-07-09 22:12:49 (21.1 KB/s) – “v4.0.3.zip” 已保存 [933006]

解压下下载好的文件命令:unzip v4.0.3.zip 得到以下目录文件

lixuan@lxmacpro dockerPro % ll
total 1936
-rw-r–r– 1 lixuan staff 252 7 9 21:21 Dockerfile
drwxr-xr-x 3 lixuan staff 96 7 9 21:19 dockerConf
drwxr-xr-x 13 lixuan staff 416 5 1 13:01 framework-4.0.3
drwxr-xr-x 3 lixuan staff 96 7 7 22:09 html
-rw-r–r– 1 lixuan staff 92 7 7 23:34 start.sh
-rw-r–r– 1 lixuan staff 933006 7 9 22:12 v4.0.3.zip

修改Dockerfile 文件基于我们的基础镜像构建,其内容如下

CodeIgniter4 web框架入口文件在public下 我们修改 nginx_default 内容如下:

由于writab需要写入权限,我们修改start.sh 赋予权限,其内容如下:

构建容器镜像,可以看到如下构建过程

lixuan@lxmacpro dockerPro % docker build -t codeigniter:4.0.3 .
Sending build context to Docker daemon 3.93MB
Step 1/7 : FROM bornfree/ulnpf:1.0
—> c75749c5e9bc
Step 2/7 : COPY framework-4.0.3/ /var/www/html/
—> 744dc645046f
Step 3/7 : COPY dockerConf/nginx_default /var/tmp/
—> 1943d3b1d3a9
Step 4/7 : RUN cat /var/tmp/nginx_default > /etc/nginx/sites-available/default
—> Running in 38c6ee5471a0
Removing intermediate container 38c6ee5471a0
—> 4a8ff99009b6
Step 5/7 : COPY start.sh /var/tmp/
—> 782fc3cfe544
Step 6/7 : RUN chmod +x /var/tmp/start.sh
—> Running in 07e81ff3a353
Removing intermediate container 07e81ff3a353
—> 0625be35d560
Step 7/7 : CMD [“/var/tmp/start.sh”]
—> Running in 7f01ff792476
Removing intermediate container 7f01ff792476
—> e751b599004d
Successfully built e751b599004d
Successfully tagged codeigniter:4.0.3

运行容器,查看容器运行状态得到如下命令过程

lixuan@lxmacpro dockerPro % docker run -d -p 2002:80 –name ci4 codeigniter:4.0.3
19703682e0541a19f81884dc4013dd2b75258f5c93209019ccfc8ed2eeb2c81e
lixuan@lxmacpro dockerPro % docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
19703682e054 codeigniter:4.0.3 “/var/tmp/start.sh” About a minute ago Up About a minute 0.0.0.0:2002->80/tcp ci4

验证:浏览器访问 127.0.0.1:80 显示 CodeIgniter 欢迎页则证明部署成功,如果构建失败,可能本地2002端口被占用,请更换一个即可。

ci欢迎页

优化:生产环境中常常会把日志文件,运行日志,一些上传文件等重要文件挂载到宿主机上,防止因容器重构,意外终止等造成文件丢失,或着把多台容器日志统一放置使用elk分析。生产中一般会把一份应用容器镜像构建在多台机器上,使用nginx 做负载均衡

最后修改日期:2020-07-09

作者

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。