自动构建镜像可以:
- 方便查看 Dockerfile 。
- 代码变化后仓库会自动更新。
链接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:///virhuiai/teaching_gf_web_develop.gitDocker Hub上新建Repository
https:///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-apacheWORKDIR /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此时打开本地浏览器就能看到效果:

















