php 如何在构建Docker容器时获取和使用已达到生命周期终点的Debian镜像

jdzmm42g  于 5个月前  发布在  PHP
关注(0)|答案(2)|浏览(64)

我对这个技术栈很陌生,所以请试着忍受我。
我在Windows上,我的工作场所有一些仓库,我需要在docker容器上运行。它真的很旧,因为他们使用PHP 5.6与debian镜像,无论何时他们开始工作。dockerfile中的前两个命令包含以下内容:

FROM php:5.6-apache

RUN apt update

字符串
当我尝试构建时,它无法到达图像,因为它们不再存在:

0.294 Ign:1 http://security.debian.org/debian-security stretch/updates InRelease
0.297 Ign:2 http://deb.debian.org/debian stretch InRelease
0.315 Err:3 http://security.debian.org/debian-security stretch/updates Release
0.315   404  Not Found [IP: 151.101.130.132 80]
0.325 Ign:4 http://deb.debian.org/debian stretch-updates InRelease
0.352 Err:5 http://deb.debian.org/debian stretch Release
0.352   404  Not Found [IP: 146.75.74.132 80]


我尝试在RUN apt update之前使用FROM debian:buster,但失败了,因为我假设不支持依赖项,这显示了这样的错误:

=> ERROR [REDACTED stage-1  4/17] RUN docker-php-ext-install     mbstring     opcache     pdo_mysql     mysqli     s  0.3s
------
 > [REDACTED stage-1  4/17] RUN docker-php-ext-install     mbstring     opcache     pdo_mysql     mysqli     simplexml     xsl     zip     gd:
0.331 /bin/sh: 1: docker-php-ext-install: not found
------
failed to solve: process "/bin/sh -c docker-php-ext-install     mbstring     opcache     pdo_mysql     mysqli     simplexml     xsl     zip     gd" did not complete successfully: exit code: 127


有人可以帮助我如何在容器中运行PHP5.6与当前的dockerfile我已经链接here.

qojgxg4l

qojgxg4l1#

你需要更新你的Debian发行版,或者用旧软件包仓库的新位置更新sources.list。有这个tutorial,它不是官方文档,但仍然可以帮助你。
但是我强烈建议你 * 不要 * 这样做。PHP 5.6的主动支持和安全支持分别于2017年1月19日和12月31日结束,2018.我强烈建议你逐步更新你的应用程序到supported PHP versions .这也将允许你“拉”最新的Linux发行版在Docker镜像中附带了最新的PHP版本。因此,您不必手动编辑sources.list或更新您的发行版,这可能非常棘手,并导致与应用程序的兼容性问题。
使用FROM debian:buster不会像你说的那样工作,因为docker-php-ext-install是一个只存在于PHP Docker镜像中的可执行文件。

bejyjqdl

bejyjqdl2#

您需要使用存档镜像,因为当一个版本到达EOL时,EOL版本的目录将被移动到存档。例如:

deb http://archive.debian.org/debian/ stretch contrib main non-free

字符串
应该从源代码中删除安全存储库。
Debian wiki: debian-archive

相关问题