在 docker 容器内升级 PHP

coo*_*kie 5 php docker

所以我有一个运行 PHP 7.2.34 服务的 docker 容器,如下所示:-

docker-compose.yml

version: '3'
services:

 #PHP Service
 app:
  build:
   context: .
   dockerfile: Dockerfile
  image: digitalocean.com/php
  container_name: app
  ...
Run Code Online (Sandbox Code Playgroud)

Dockerfile

FROM php:7.2-fpm
...
Run Code Online (Sandbox Code Playgroud)

我没有重新启动 Nginx,而是简单地重新启动容器,例如:-

docker stop app db webserver
docker rm app db webserver
docker-compose up -d
Run Code Online (Sandbox Code Playgroud)

我想升级到 PHP 7.4+ 甚至 8。我尝试简单地替换FROM php:7.2-fpmFROM php:7.4-fpmphpinfo()报告 PHP 版本没有变化?是否:image: digitalocean.com/php升级时有什么意义吗?

Shm*_*uel 6

此命令将更新您的映像并强制停止并重新创建容器:

docker-compose up -d --force-recreate --build
Run Code Online (Sandbox Code Playgroud)

为了验证运行,docker exec -it app php -v这将返回 php 版本信息。

# The new image name when running `docker-compose up/build`
image: digitalocean.com/php
Run Code Online (Sandbox Code Playgroud)

解释

该命令docker-compose up将构建一个不存在的图像。
要强制构建新图像,请添加--build标志或执行操作docker-compose build,然后docker-compose up

参考这里

如果您想强制 Compose 停止并重新创建所有容器,请使用该--force-recreate标志。

--build 在启动容器之前构建镜像。