在 在 Alpine Linux 中编译安装 Nginx 中,笔者介绍了如何通过源码在 Alpine Linux 中安装 Nginx, 在本文中,我们要将这一构建过程通过定义 Dockerfile 自动化、版本化。
在本文中,我们使用 alpine 官方最新版本的镜像作为基础镜像,使用 nginx 1.19.4 的源码进行构建。 首先,定义如下的 Dockerfile 文件,文件中指令大多数和在 在 Alpine Linux 中编译安装 Nginx 中所描述的执行过程一样。需要特别指出的部分会在文章的后半段指明。
1 | FROM alpine:latest |
需要注意的一些细节
使用 WORKDIR 指令代替交互式构建中使用的 cd 命令
使用 ENV 指令代替将 路径(PATH) 设置写入 /etc/profile, 然后在执行 source /etc/profile 的做法。 因为用 RUN 命令执行的只会在构建镜像的时候执行,并且 /etc/profile 并不会像通常的虚拟机启动时那样回被执行。
构建镜像
执行以下命令以构建镜像:
1 | docker build -t="alpine-nginx:1.0" . |
这里,我们给镜像名为为: alpine-nginx ,设定 tag 为: 1.0
验证镜像
执行以下命令启动一个容器:
1 | docker run --name MyNginx -d -p 8080:80 alpine-nginx:1.0 |
正常启动后,可以用 docker ps 查看到已经启动的名为 MyNginx 的容器。
用浏览器访问:
1 | http://localhost:8080 |
可以看到 Nginx 的默认页面。