网站首页 > 技术文章 正文
自动构建镜像可以:
链接GitHub
需要链接GitHub,这样,GitHub那边项目代码变化时,DockerHub这边才能相应的被触发。
官方的英文说明在这:
https://docs.docker.com/docker-hub/builds/link-source/
我操作过程中,也截图了一部分:
因为已经操作过了,剩下的就将官网的2个图放出下,按提示操作就可以了:
GitHub上创建项目
以教女朋友学web开发的项目 teaching_gf_web_develop 为例子
第1步: New repository
第2步:填写项目信息:
这儿需要将main设置为我们的主分支名称,点击settings:
设置好后重新去写相关的信息,应该以后新的项目就不要再次设置了吧(未尝试,主分支名这事件有兴趣可以去搜索下Master 分支、种族歧视这样的字眼):
现在可以创建了。我以后会基于Codeigniter和vue(本文不包括进来),忽略文件模板就选择Codeigniter的好了。
现在这个项目部分就准备好了。
https://github.com/virhuiai/teaching_gf_web_develop.git
Docker Hub上新建Repository
https://hub.docker.com/repositories
名字也叫teaching_gf_web_develop.git吧
可以看到,这边能看到我们在GitHub上的新建的这个项目了(需要链接过你的 Github),选中。
下边有BUILD RULES:
我们可以再点下面的例子看看:
最终,我写的是:
/^v[0-9.]+/
version-{\1}
这会直接点创建就好了,我们GitHub上的项目里目前还没有Dockerfile。下次提交的tag符合我们设置的正则就会触发自动构建了。
git的tag提交
代码克隆下来,并添加Dockerfile文件:
FROM php:7.4.8-apache
WORKDIR /var/www/html/
RUN mkdir /virhuiai/ && \
echo "#!/bin/bash" >> /virhuiai/initFirstPhp.sh && \
echo "if [ ! -f '/virhuiai/index.php' ];then" >> /virhuiai/initFirstPhp.sh && \
echo " echo '<?php phpinfo();' > /var/www/html/index.php" >> /virhuiai/initFirstPhp.sh && \
echo "fi" >> /virhuiai/initFirstPhp.sh
可以使用idea类的ide,
我们给它打上tag:
提交时勾上Tag,刚刚已经提交了忘记截图,所以这会没显示什么内容:
第一次时会要输入GitHub的密码:
Docker的自动构建:
这会到DockerHub上,
就可以看到在构建了:
这需要一会,再去看,就能看到成功了:
这时我们就能在本地拉取了:
启动容器:
docker run -d -p 80:80 --name my-apache-php-app -v "$PWD":/var/www/html virhuiai/teaching_gf_web_develop:lasted
进入容器运行初始化一个显示phpinfo()的脚本,
docker exec -it 9716fb75aded /bin/sh
/bin/bash /virhuiai/initFirstPhp.sh
此时打开本地浏览器就能看到效果:
猜你喜欢
- 2024-09-29 Docker实战007:docker仓库使用详解
- 2024-09-29 Docker 简介(docker-it)
- 2024-09-29 Docker Hub 遭入侵,19 万帐号被泄露
- 2024-09-29 K8S系列学习之DockerHub自有镜像库搭建和使用
- 2024-09-29 终于有人把Docker讲清楚了,Docker入门教程,原来这么简单...
- 2024-09-29 Docker镜像管理(docker镜像管理PPT)
- 2024-09-29 Docker从入门到精通:Docker pull命令学习
- 2024-09-29 DockerDockerfile深度解析(dockerfile sh)
- 2024-09-29 Docker架构最全详解(图文全面总结)
- 2024-09-29 docker的镜像和仓库(常用docker镜像仓库)
- 1509℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 532℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 495℃MySQL service启动脚本浅析(r12笔记第59天)
- 474℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 472℃启用MySQL查询缓存(mysql8.0查询缓存)
- 452℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 431℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 428℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- linux删除一个文件夹 (65)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)