E: Package 'Mysql-Client' Has No Installation Candidate in Php-Fpm Image Build Using Docker Compose

Im fairly new to docker and so im trying to learn more about it using a laravel project, im following this tutorial:

Ive adjusted the Dockerfile a bit from what the tutorial has but even the tutorial file causes the same result.

FROM php:7.3-fpm

# Copy composer.lock and composer.json
COPY composer.lock composer.json /var/www/
# Install dependencies
RUN curl -sL  | 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  | 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"]

But i keep getting the following error when i run 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  | bash - &&     apt-get update && apt-get install -y mysql-client     nodejs     build-essential     vim     git     curl' returned a non-zero code: 100

Am i missing something?

I expected this to work since i am running apt-get update before installing mysql-client.

Thanks.

0

4 Answers

php:7.3-fpm now use Debian 10 (Buster) as its base image and Buster ships with MariaDB, so just replace mysql-client with mariadb-client should fix it.

1

If you still want to use the mysql client, it's called default-mysql-client now.

4

php:7.2-apache triggers the error as well, but I resolve it using php:7.2.18-apache

it worked for me: sudo apt-get update && apt-get install -y git curl libmcrypt-dev default-mysql-client

or alternatively apt-cache search mysql-server find out your servers then sudo apt-get install default-mysql-server default-mysql-server-core mariadb-server-10.6 mariadb-server-core-10.6 in my case it was the above codes

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Sarah Jenkins

Sarah Jenkins

Senior Technology Editor & AI Specialist

Sarah Jenkins is a veteran tech journalist with over 12 years of experience covering artificial intelligence, mobile innovations, and digital ethics. Her insights have appeared in leading technology publications worldwide.

Share this article
Twitter Facebook Pinterest