我在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
2条答案
按热度按时间ux6nzvsh1#
node:10
镜像是旧的,基于Debian 9(称为“stretch”)。对Debian 9的支持在2022年停止。这就是为什么软件包管理器找不到你想要安装的软件包。Node 10自2021年起也将停止支持。
您应该迁移到更新版本的Node和Debian。Node的最新LTS版本是版本20,因此可能是一个很好的候选者。要使用它,请将
FROM
语句更改为字符串
该映像使用Debian 12(称为“bookworm”),将支持到2028年。
gcuhipw92#
如果出于某种原因,您仍然希望使用
node:10
,即使它不再受支持,请在RUN apt-get更新之前添加它字符串