Docker Hub镜像仓库
本文最后更新于105 天前,其中的信息可能已经过时,如有错误请发送邮件到1979007616@qq.com

首先附上本人制作的镜像以及相关配置文件。使用GLPI资产管理系统做测试。

Github地址:xiemuhou/docker-glpi: 自建docker hub仓库配置文件保存 (github.com)

Docker Hub地址:xiemuhou/glpi – Docker Image | Docker Hub

制作个人Docker Hub镜像的前提是熟悉项目部署、项目文件目录结构、以及下文的Docker相关配置文件。

所有docker pull下载到本地的镜像都是别人制作好上传到Docker Hub仓库中的。

制作方法

1.编写Dockerfilestart.sh配置文件,使用命令:docker build -f Dockerfile -t xiemuhou/glpi:latest .创建镜像。

2.上传镜像至Docker Hub:docker push xiemuhou/glpi:latest

3.编写docker-compose.yml文件,使用命令:docker-compose up -d创建容器。

任意项目版本

效果:Docker Hub镜像中不固定GLPI版本,通过docker-compose.yml文件配置信息选择GLPI版本号。

优点:版本号可自由选择。

缺点:Docker Hub镜像只打包了运行环境,项目文件在docker容器部署时才下载,如果没有外网,下载会非常慢。

start.sh文件

由于是没有指定GLPI版本的镜像,所以项目文件是不能放在镜像创建文件中的。start.sh文件是容器启动后才会执行,所以GLPI项目文件的下载任务放在该文件中。

配置解析:

  • 4-5行:定义GLPI版本参数,如果参数没有被赋值,将默认最新版本;
  • 14行:修改php.ini文件中session.cookie_httponly = on
  • 20-24行:将 TLS_REQCERT 配置项添加到 /etc/ldap/ldap.conf 文件中,并将其设置为 never
  • 27-38行:通过检查glpi/bin文件是否存在判断GLPI安装状态,如果没有安装就获取下载地址,下载、解压、删除安装包、更改文件夹的所有者。
  • 42-46行:获取本地GLPI项目版本号,对版本号进行相关处理。
  • 49行:定义目标GLPI版本号为10.0.7;
  • 50行:将目标 GLPI 版本号中的点号(”.”)全部替换为空字符串,得到字符串:“1007”;
  • 51行:将目标 GLPI 版本号中的第一个数字(主版本号)提取出来。它使用了 cut 命令来以点号作为分隔符,然后取得第一个字段,得到主版本号:“10”。
  • 54-59行:比较本地GLPI版本号和目标GLPI版本号,根据对比结果配置/etc/apache2/sites-available/000-default.conf文件,-lt 是比较操作符,表示“小于”。

Dockerfile文件

Dockerfile文件在镜像创建的时候就会执行,一般用于部署项目所需的服务环境,包括常用的工具,如vim。

创建镜像

配置好上面两个文件就可以创建镜像:docker build -f Dockerfile -t xiemuhou/glpi:latest .

注:不加标签默认是latest,所以docker run的时候要带上镜像标签,注意后面有点号(”.”)。

报错:软件包“libldap-2.4-2”没有安装候选项,说明debian:12.5不支持这个libldap版本,可以将debian版本改成11.6,或者将libldap-2.4-2改成libldap-2.5-0

创建成功可以看到如下结果:

同时,我们可以用docker history <image名称>命令来进一步验证Dockerfile的构建过程。

推送镜像至Docker Hub

推送之前需要登录Docker Hub账号:docker login,没有账号可以注册:Docker Hub Container Image Library | App Containerization

输入用户名和密码,我的账号是:xiemuhou

退出命令:docker out

官方文档要求,我们推送的镜像名字必须是Docker Hub ID/<image名称>:版本号,比如:xiemuhou/glpi:10.0.6,所以我们需要给镜像换一个名字。

复制镜像并且修改名称:docker tag 镜像名:版本 新镜像名:版本

上传镜像到Docker Hub:docker push xiemuhou/glpi:latest

登陆Docker Hub就可以看到我们刚刚推送上去的镜像了,所有人都可以通过网络下载我的容器了。

docker pull xiemuhou/glpi:latest

docker-compose.yml文件

部署相关命令

部署的时候只需要写好docker-compose.yml文件,当然还有一个mysql.env文件,并在该文件目录下使用命令:docker-compose up -d即可。

停止并删除有关的容器:docker-compose down -v

简直是懒人必备,果然懒才是促进效率提升的第一要素。

指定项目版本

指定项目版本顾名思义就是在镜像文件中就已经确定了GLPI的项目版本,避免了因为没有外网而导致的下载缓慢问题。

和任意项目版本不同的是,在制作镜像时Dockerfile文件中下载GLPI项目文件,start.sh文件在容器启动后执行解压等操作。

start.sh文件

配置解析:

  • 29行:匹配符合条件的文件名,将整个文件路径/var/www/html/glpi-10.0.6.tgz赋值给TAR_GLPI

Dockerfile文件

配置解析:

  • 43行:配置工作目录,和cd命令差不多。
  • 45行:下载GLPI项目文件压缩包。

创建镜像

docker build -f Dockerfile -t xiemuhou/glpi:10.0.6 .

推送镜像至Docker Hub

docker pull xiemuhou/glpi:10.0.6

docker-compose.yml文件

部署

部署和上面是一样的,没有太多要说的。

相关链接

DiouxX/docker-glpi: Project to deploy GLPI with docker (github.com)

diouxx/glpi – Docker Image | Docker Hub

elestio-examples/glpi: Deploy GLPI with CI/CD on Elestio (github.com)

elestio/glpi – Docker Image | Docker Hub

小提示:您可以通过RSS订阅本站文章更新,订阅地址:https://blog.xmhweb.cn/feed

评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇