I have a MySQL server on my host machine and I want my docker containers connect to it, instead of create a MySQL container.
In my application configuration file I'm using localhost
, as I used to do before using Docker, but the connection is being refused.
I'm using docker-compose and here is my .yml
:
version: "3.2"
services:
php:
build:
context: './dockerfiles/php/'
args:
PHP_VERSION: ${PHP_VERSION}
networks:
- backend
volumes:
- ${PROJECT_ROOT}/:/var/www/html/
container_name: acadbase_php
apache:
build:
context: './dockerfiles/apache/'
args:
APACHE_VERSION: ${APACHE_VERSION}
depends_on:
- php
networks:
- frontend
- backend
ports:
- "8080:80"
volumes:
- ${PROJECT_ROOT}/:/var/www/html/
container_name: acadbase_apache
networks:
frontend:
backend:
volumes:
data:
My ./dockerfiles/php/Dockerfile
:
ARG PHP_VERSION=""
FROM php:${PHP_VERSION:+${PHP_VERSION}-}fpm-alpine
RUN apk update; \
apk upgrade; \
apk add libxml2-dev
RUN docker-php-ext-install mysqli soap mbstring xml pdo_mysql
My ./dockerfiles/apache/Dockerfile
:
ARG APACHE_VERSION=""
FROM httpd:${APACHE_VERSION:+${APACHE_VERSION}-}alpine
RUN apk update; \
apk upgrade; \
apk add vim;
COPY acadbase.conf /usr/local/apache2/conf/acadbase.conf
RUN echo "Include /usr/local/apache2/conf/acadbase.conf" \
>> /usr/local/apache2/conf/httpd.conf
My .env
:
PHP_VERSION=7.1
APACHE_VERSION=2.4
PROJECT_ROOT=.