docker-compose up正在强制我更新我的dockerfile

dgsult0t  于 2023-11-17  发布在  Docker
关注(0)|答案(2)|浏览(151)

我在docker方面的经验相当有限,我一直在尝试在一个需要运行的项目上运行docker-compose build,我在windows10中使用docker。
构建每隔几秒就停止一次,并给我不同的错误,比如:
W: The repository 'http://security.debian.org/debian-security stretch/updates Release' does not have a Release file.在运行RUN apt-get update时,
运行RUN apt-get -y install mysql-client时的E: Unable to locate package mysql-client

虽然我已经能够解决前一个错误,我一直试图让它安装mysql-client一段时间了,它只是不断抛出一个或另一个错误,尽管我已经对dockerfile进行了更改。(我已经尝试将该行更改为RUN apt-get -y install default-mysql-client
这是我的dockerfile:

FROM node:10

RUN echo "UTC" > /etc/timezone
RUN dpkg-reconfigure -f noninteractive tzdata

RUN apt-get update
RUN apt-get -y install mysql-client

RUN mkdir /usr/homework1
RUN mkdir /usr/homework2
RUN mkdir /usr/homework3

字符串
我的问题是,为什么会发生这种情况?大约一年前,我在ubuntu上构建了相同的项目,它工作得很好。有没有办法阻止它给我这么多错误?该项目有大约10个容器,我需要一步一步地处理每个dockerfile吗?是因为docker-compose版本吗?我目前正在使用
Docker Compose版本v2.23.0-desktop.1

ux6nzvsh

ux6nzvsh1#

node:10镜像是旧的,基于Debian 9(称为“stretch”)。对Debian 9的支持在2022年停止。这就是为什么软件包管理器找不到你想要安装的软件包。
Node 10自2021年起也将停止支持。
您应该迁移到更新版本的Node和Debian。Node的最新LTS版本是版本20,因此可能是一个很好的候选者。要使用它,请将FROM语句更改为

FROM node:20

字符串
该映像使用Debian 12(称为“bookworm”),将支持到2028年。

gcuhipw9

gcuhipw92#

如果出于某种原因,您仍然希望使用node:10,即使它不再受支持,请在RUN apt-get更新之前添加它

RUN sed -i -e 's/deb.debian.org/archive.debian.org/g' \
           -e 's|security.debian.org|archive.debian.org/|g' \
           -e '/stretch-updates/d' /etc/apt/sources.list

字符串

相关问题