例如,在项目CI中会出现docker命令和gradle命令同时存在的情况,官方镜像无法满足我们的要求,就需要我们自己打镜像

1. 创建Dockerfile文件

touch Dockerfile
vim Dockerfile

拷贝Dockerfile文件内容

FROM gradle:6.8-jdk8
USER root
ENV DOCKER_CHANNEL edge
ENV DOCKER_VERSION 18.05.0-ce
RUN set -x \
    && curl -fSL "https://download.docker.com/linux/static/${DOCKER_CHANNEL}/x86_64/docker-${DOCKER_VERSION}.tgz" -o docker.tgz \
    && tar -xzvf docker.tgz \
    && mv docker/* /usr/local/bin/ \
    && rmdir docker \
    && rm docker.tgz \
    && docker -v

2. 构建docker镜像

#注意末尾有个 . ,指当前目录下的Dockerfile文件,可以使用-f指定其他路径
# -t: 镜像的名字及标签
docker build -t docker-gradle .

image.png

3. 查看构建出来的镜像

docker images

image.png

4. 打tag

#registry.cn-hangzhou.aliyuncs.com/namespace是自己的镜像仓库地址
docker tag docker-gradle:latest registry.cn-hangzhou.aliyuncs.com/namespace/docker-gradle:6.8-jdk8

5. 推送之后自己的远程镜像仓库

docker push registry.cn-hangzhou.aliyuncs.com/namespace/docker-gradle:6.8-jdk8