this_guy
this_guy

Reputation: 604

Docker fails to install php mysql extension

I'm just trying to get a simple docker dev environment setup, but docker is not installing php's mysql extension. I get a fatal error - Call to undefined function mysql_connect(). I've tried different php versions (5.4, 5.5, 5.6, 7.0) all with the same result. Any help would be appreciated.

docker-compose.yml

version: '2'
volumes:
    database_data:
        driver: local
services:
  nginx:
    image: nginx:latest
    ports:
      - 8080:80
    volumes:
      - ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf
    volumes_from:
      - php
  php:
    build: ./docker/php/
    expose:
      - 9000
    volumes:
      - .:/var/www/html
  testing:
    build: ./docker/php/
    volumes_from:
      - php
  mysql:
    image: mysql:latest
    expose:
      - 3306
    volumes:
      - database_data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: secret
      MYSQL_DATABASE: project
      MYSQL_USER: project
      MYSQL_PASSWORD: project

Dockerfile

FROM php:7.0-fpm
# Install pdo_mysql
RUN apt-get update \
  && echo 'deb http://packages.dotdeb.org jessie all' >> /etc/apt/sources.list \
  && echo 'deb-src http://packages.dotdeb.org jessie all' >> /etc/apt/sources.list \
  && apt-get install -y wget \
  && wget https://www.dotdeb.org/dotdeb.gpg \
  && apt-key add dotdeb.gpg \
  && apt-get update \
  && apt-get install -y php7.0-mysql \
  && docker-php-ext-install pdo_mysql mysqli mysql

Upvotes: 2

Views: 10606

Answers (2)

jruzafa
jruzafa

Reputation: 4276

If you install this php extension works (inside dockerfile)

docker-php-ext-install mysqli

inside container:

docker-php-ext-install mysqli
apache2ctl restart

Upvotes: 6

this_guy
this_guy

Reputation: 604

I looked at the WP Docker repo and used their php Dockerfile and it worked.

# install the PHP extensions we need
RUN apt-get update && apt-get install -y libpng12-dev libjpeg-dev && rm -rf /var/lib/apt/lists/* \
    && docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \
    && docker-php-ext-install gd
RUN docker-php-ext-install mysqli

Upvotes: 2

Related Questions