在dockerfile中将nginx更新到最新版本1.24.0

fcwjkofz  于 2023-08-03  发布在  Nginx
关注(0)|答案(1)|浏览(357)

我有一个使用php:8.1-fpm作为基础镜像的dockerfile,它使用的是debian 12。这个镜像正在帮助我安装nginx版本1.22.1。不是因为安全漏洞,我需要升级nginx到1.24.0。

FROM php:8.1-fpm

RUN apt-get update && apt-get install -y nginx=1.24.* \

字符串
但这是给我的错误1.24.* 版本没有找到。
然后我尝试添加ppa仓库并使用此链接中的信息升级nginx:https://www.nginx.com/resources/wiki/start/topics/tutorials/install/

nginx=stable # use nginx=development for latest development version
add-apt-repository ppa:nginx/$nginx
apt update
apt install nginx


但还是没有成功。nginx 1.22.1
有什么方法可以在我的docker镜像中升级nginx吗?
先谢谢你。

8yparm6h

8yparm6h1#

现在主线nginx版本为1.25.1,稳定版本为1.24.0
为主线nginx版本创建Dockerfile

FROM php:8.1-fpm

RUN apt update && apt -y install curl gnupg2 ca-certificates lsb-release debian-archive-keyring
RUN curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
RUN echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/mainline/debian `lsb_release -cs` nginx" | tee /etc/apt/sources.list.d/nginx.list
RUN apt update && apt -y install nginx && rm -rf /var/lib/apt/lists/*

EXPOSE 80/tcp
CMD ["/usr/sbin/nginx", "-g", "daemon off;"]

字符串
构建图像

$ docker build . -t nginx-mainline-php81


检查图像

$ docker images
REPOSITORY              TAG       IMAGE ID       CREATED         SIZE
nginx-mainline-php81    latest    8768a3a02d01   9 minutes ago   525MB


在docker中检查OS、nginx和php版本

$ docker run nginx-mainline-php81 cat /etc/issue
Debian GNU/Linux 12 \n \l

$ docker run nginx-mainline-php81 nginx -v
nginx version: nginx/1.25.1

$ docker run nginx-mainline-php81 php -v
PHP 8.1.20 (cli) (built: Jun 14 2023 05:51:39) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.20, Copyright (c) Zend Technologies


将容器作为守护进程运行

$ docker run -d --rm -p 90:80 nginx-mainline-php81
54a76f657d71024d95e3c4fae5f18b18b0040bbbab5ab17ecb0076468fd59f09


我们将主机的端口90Map到端口80的Docker容器。检查 netstat

$ netstat -tupln | grep 90
tcp    0   0 0.0.0.0:90   0.0.0.0:*  LISTEN  28520/docker-proxy
tcp6   0   0 :::90        :::*       LISTEN  28527/docker-proxy


进入浏览器,打开地址SERVER_IP:90,可以看到nginx defaul页面。或者从命令行使用curl检查,如:

$ curl 127.0.0.1:90


你会看到nginx defaul页面的html * 源代码 *。

相关问题