赞
踩
此系列的前 3 篇主要是介绍了 Docker 的应用、Docker 编排文件 Dockerfile 的常用命令、以及 Docker 镜像的构建过程等都进行简单介绍。尤其在第 3 篇,讲述了 Docker 运行时、安装用等资源,并在文末提出了存在的不足和改进的方向,本篇就直接从代码开始介绍如何使用 DIC 工具来创建 Docker 镜像。
第一级很简洁,只有 3 个文件和 1 个文件夹,分别是:
既然 framework 是基础,那就重点看看此目录下的内容,如下图:
framework 目录下包含了三个目录,分别是:
下图展示 framework 的目录结构全貌:
在此实例中:
使用该框架的第一步就是要创建一个应用项目,由 createApp.sh 文件来完成,该文件会根据输入的参数信息创建一个应用项目。
目前的脚本并不复杂,所以没有使用函数,直接将脚本内容写在 createApp.sh 文件里。
#!/bin/bash # 用法:./createApp.sh [creatorVersion] [appName] [appVersion] # 参数 # creatorVersion=$1 - 生成器版本号 # appName=$2 - 应用名称 # appVersion=$3 - 应用版本号 set -e # 遇到错误时退出脚本 # 生成器版本号 creatorVersion=$1 if [ -z "$creatorVersion" ]; then echo "请输入生成器版本号" exit 1 fi # 应用名称 appName=$2 if [ -z "$appName" ]; then echo "请输入应用名称" exit 2 fi # 应用版本号 appVersion=$3 if [ -z "$appVersion" ]; then echo "请输入应用版本号" exit 3 fi # 检查版本号在 framework 目录下是否存在 if [ ! -d "framework/versions/$creatorVersion" ]; then echo "生成器版本 $creatorVersion 不存在!创建应用失败!!" exit 4 fi # 调用指定版本下的 _createApp.sh 脚本,需要根据 _createApp.sh 脚本要求传参 . ./framework/versions/$creatorVersion/tools/_createApp.sh $1 $2 $3
从createApp.sh脚本的内容分析,其核心作用在于接收并验证用户传递的参数,然后根据指定的版本信息调用位于 framework/versions/ 目录下对应版本的 _createApp.sh 子脚本来执行实际的项目创建操作。换言之,createApp.sh扮演了引导和参数预处理的角色,而具体的项目构建逻辑实现在各个版本的 _createApp.sh 中。
同样的模式也体现在其他相关脚本中,如build.sh和run.sh。build.sh脚本负责调用对应的 _build.sh 子脚本进行构建任务,而run.sh脚本则是通过调用 _run.sh 子脚本来执行项目的运行操作。这些主脚本与子脚本之间的关系构成了一个模块化的执行结构,每个主脚本作为对外接口统一处理输入和调度,而具体功能的实现则分散在各版本的子脚本中。
这样设计的好处是,可以充分发挥各个版本的功能模块化,每个版本都可以独立扩展和修改,而不会影响其他版本。
_createApp.sh 文件的代码如下:
#!/bin/bash # 用法:./_createApp.sh [creatorVersion] [appName] [appVersion] set -e # 遇到错误时退出脚本 # 创建应用目录 mkdir -p apps/$appName # 创建应用目录 # 如果 Dockfile 文件不存在,则创建一个模版 if [ ! -f "apps/$appName/Dockerfile" ]; then echo "FROM busybox:latest" > apps/$appName/Dockerfile fi # 生成配置文件 ec
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。