制作 Nginx-1.21.6 免安装包

本文基于Docker - 制作Nginx镜像文章的基础上,在腾讯云云服务器(CentOS系统)上基于镜像文件Dockerfile制作 Nginx 镜像。

接上一篇文章,我们配置好了docker-compose.yml并启动了 nginx-demo 应用。接下来我们在此基础之上,制作 Nginx-1.21.6 免安装压缩包,该压缩包在 centos 系统上解压即可启动 Nginx 使用。

制作 nginx-1.21.6.tar.gz 免安装包

1、进入容器container终端

2、删除 nginx-1.21.6 需要编译构建的安装包

备注: 在“Docker-制作nginx镜像”文章中,我们制作nginx-demo镜像是在 nginx-1.21.6 执行make构建安装的。

1
2
3
4
5
6
7
8
9
10
cd /usr/local/services

# 删除需要编译构建的安装包
rm -rf nginx-1.21.6

# 拷贝构建好的nginx目录
cp -TRf nginx nginx-1.21.6

# 压缩免安装包
tar -zcvf nginx-1.21.6.tar.gz ./nginx-1.21.6

如此,我们即可得到 nginx-1.21.6.tar.gz 免安装包。

3、将容器nginx-demo中的 nginx-1.21.6.tar.gz 包拷贝到主机目录中

1
2
# 将容器 nginx-demo 的 nginx-1.21.6.tar.gz 拷贝到主机的 /home/coder/app/nginx-demo 目录中。
docker cp nginx-demo:/usr/local/services/nginx-1.21.6.tar.gz /home/coder/app/nginx-demo

基于nginx-1.21.6.tar.gz免安装包制作 Nginx 镜像

制作Nginx免安装包镜像代码

Dockerfile

Dockerfile

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# Nginx 服务镜像
# - https://hub.docker.com/_/centos?tab=tags&page=1
FROM centos:centos7.9.2009

WORKDIR /opt/app

LABEL maintainer="luqiangzeng@gmail.com"

# 定义环境变量
ENV NGINX_PATH /usr/local/services/nginx

COPY ./packages/nginx-1.21.6 ${NGINX_PATH}

# 创建nginx用户
RUN useradd -M -s /sbin/nologin nginx

COPY ./scripts/pod-tools/ /opt/app/scripts/

ADD ./dist/index.html ./nginx/index.html


ENTRYPOINT ["/opt/app/scripts/run.sh"]

基于nginx-1.21.6.tar.gz免安装包制作 Nginx 镜像,少了之前的编译构建过程。
nginx-1.21.6.tar.gz 在 centos 系统中解压即可以启动使用Nginx服务。

构建 nginx-1.21.6-tar 镜像

1、执行构建指令

1
npm run docker:build

2、启动镜像容器,验证Nginx服务是否正常

1
docker run --name nginx-1.21.6-tar -p 80:80 -d nginx-1.21.6-tar:latest /usr/sbin/init

3、将镜像发布到Docker Hub中

打 tag:

1
2
3
# 打 tag
docker image tag nginx-1.21.6-tar:latest luqiangzeng/nginx-1.21.6-tar:1.0.0
docker image tag nginx-1.21.6-tar:latest luqiangzeng/nginx-1.21.6-tar:latest

推送镜像:

1
2
3
4
# 推送 1.0.0 版本镜像
docker push luqiangzeng/nginx-1.21.6-tar:1.0.0
# 推送 latest 版本镜像
docker push luqiangzeng/nginx-1.21.6-tar:latest

nginx-1.21.6-tar镜像