Dockerコンテナ内のPHPのアップグレード

Dockerコンテナ内のPHPのアップグレード

そのため、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
  ...

ドッカーファイル

FROM php:7.2-fpm
...

Nginxを再起動するのではなく、次のようにコンテナを再起動しました。

docker stop app db webserver
docker rm app db webserver
docker-compose up -d

PHP 7.4+または8にアップグレードしたいです。簡単に交換してみましたFROM php:7.2-fpmが、PHPバージョンに変更がないと報告されましたFROM php:7.4-fpmphpinfo()例:image: digitalocean.com/phpアップグレードする必要がありますか?

答え1

このコマンドはイメージを更新し、コンテナを強制停止して再生成します。

docker-compose up -d --force-recreate --build

確認目的でdocker exec -it app php -vPHPのバージョン情報が返されます。

# The new image name when running `docker-compose up/build`
image: digitalocean.com/php

説明する:

このコマンドはdocker-compose up存在しないイメージを構築します。
新しい画像を強制的に生成するには、--buildフラグまたはタスクを追加してdocker-compose buildからdocker-compose up

ここを参照してください

Composeを強制的に停止し、すべてのコンテナを再生成するには、この--force-recreateフラグを使用します。

--build コンテナを起動する前にイメージをビルドしてください。

答え2

ドッカー画像とドッカーコンテナには違いがあります。とを
参照してください。docker image lsdocker container ls

イメージを再構築し、実行するコンテナを作成します。

docker-compose up -d --build

答え3

とにかくアプリケーションを停止するには、次のようにホストからすべてのイメージを削除できます。

docker-compose down --rmi all

その後、アプリケーションを起動し、@Shmuelが提案したようにコンテナを再作成します。

docker-compose up -d --force-recreate --build

答え4

たとえば、Dockerfileのターゲットバージョンを変更します。

FROM php:7.4-fpm

または

FROM php:8.0-fpm

次にライブラリを調整します。このファイル7.xxxの場合

または7.xxx〜8.xxxこのファイル

関連情報