当前位置: 首页 > 面试题库 >

E:软件包“ mysql-client”在使用docker compose的php-fpm映像构建中没有安装候选对象

荣晨朗
2023-03-14
问题内容

我是Docker的新手,所以我尝试使用laravel项目了解更多有关Docker的信息,并按照以下教程进行操作:

https://www.digitalocean.com/community/tutorials/how-to-set-up-laravel-nginx-
and-mysql-with-docker-
compose?comment=77842

我已经根据教程内容对Dockerfile进行了一些调整,但是即使教程文件也会导致相同的结果。

FROM php:7.3-fpm

# Copy composer.lock and composer.json
COPY composer.lock composer.json /var/www/
# Install dependencies
RUN curl -sL https://deb.nodesource.com/setup_10.x | bash - && \
    apt-get update && apt-get install -y mysql-client \


RUN npm install -g npm

# Clear cache
RUN apt-get clean && rm -rf /var/lib/apt/lists/*


# Install extensions
RUN docker-php-ext-install pdo pdo_mysql

# Install composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

# Add user for laravel application
RUN groupadd -g 1000 www
RUN useradd -u 1000 -ms /bin/bash -g www www

# Copy existing application directory contents
COPY . /var/www

# Copy existing application directory permissions
COPY --chown=www:www . /var/www

# Change current user to www
USER www
# Set working directory
WORKDIR /var/www
# Expose port 9000 and start php-fpm server
EXPOSE 9000

CMD ["php-fpm"]

但是我在运行时始终收到以下错误docker-compose up -d

E: Package 'mysql-client' has no installation candidate
ERROR: Service 'app' failed to build: The command '/bin/sh -c curl -sL https://deb.nodesource.com/setup_10.x | bash - &&     apt-get update && apt-get install -y mysql-client     nodejs     build-essential     html" target="_blank">vim     git     curl' returned a non-zero code: 100

我想念什么吗?

我希望这能正常工作,因为我apt-get update在安装之前正在运行mysql-client

谢谢。


问题答案:

php:7.3-fpm现在使用Debian 10(Buster)作为其基本映像,并且Buster随MariaDB一起提供,因此只需替换mysql- client为即可mariadb-client修复它。



 类似资料:
  • 基于以上讨论,我需要安装。我把它安装在Dockerfile中,但仍然是相同的错误。我该怎么办?

  • 我有一个使用Perl:5.22作为基映像的dockerfile: 当我在dockerfile中执行:时,会出现这样的错误,如下所示: 但是,包有一个候选安装程序,但没有候选安装程序 我是Docker的新手;perl 5.22基础映像是否已经与libssl1.0.0一起预装在映像中?我在他们的基本图像中看不到它,其次,*如果没有候选文件可以安装这个包,我如何在我的dockerfile中安装这个包*?

  • 问题内容: 在何时,或选择与有用? 对于某些项目,requirements.txt中的最后一行是。它到底是做什么的? 问题答案: 如手册页所述: 因此,当您尝试在本地安装软件包时,通常会在系统上进行开发时使用此软件包。它将链接软件包到原始位置,基本上意味着对原始软件包的任何更改都将直接反映在您的环境中。 这里和这里的一些掘金都一样。 关于什么:: 例如, / srv / pkg是可在其中找到“ s

  • 什么时候或选项对有用? 对于某些项目,requirements.txt中的最后一行是。它到底做什么?

  • 问题内容: 作为超级用户或用户可以运行命令,创建虚拟软盘映像文件的文章很多。基本步骤是: 通过命令创建空的1.44MB图像文件 格式化图像文件 将映像文件挂载到某个挂载点 复制一些东西到挂载点 虚拟软盘映像文件 我的问题是,如果我只是无法运行命令的普通用户,我如何按照上述步骤创建虚拟软盘映像并在其中写一些内容? 非常感谢。 问题答案: 是的,您当然可以这样做。使用FAT和或用于EXT2文件系统。