Skip to content

Commit

Permalink
Docker-compose setup for running tests locally.
Browse files Browse the repository at this point in the history
  • Loading branch information
kamilwylegala committed Oct 19, 2023
1 parent b78062d commit 86009b2
Show file tree
Hide file tree
Showing 6 changed files with 91 additions and 0 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ It means that composer will look at `master` branch of repository configured und
### 2023-10-19

- Removed usage of deprecated `redis->getKeys()` in favor of `redis->keys()`.
- Added docker-compose setup to run tests locally.

### 2023-09-18

Expand Down
Empty file removed app/tmp/cache/views/empty
Empty file.
54 changes: 54 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
services:
web:
build: ./docker/web
environment:
PHP_IDE_CONFIG: "serverName=localhost"
volumes:
- ./:/var/www/html:cached
working_dir: /var/www/html
ports:
- "8000:80"
depends_on:
- mysql
- pgsql
- memcached
- redis
mysql:
image: mysql:5.6
platform: linux/amd64
command: mysqld --character-set-server=utf8 --collation-server=utf8_general_ci
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: cakephp_test
MYSQL_USER: cakephp_test
MYSQL_PASSWORD: secret
volumes:
- ./docker/mysql:/docker-entrypoint-initdb.d:cached
- mysql-data:/var/lib/mysql
ports:
- "3306:3306"
pgsql:
image: postgres:9.4
platform: linux/amd64
environment:
POSTGRES_DB: cakephp_test
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
volumes:
- ./docker/pgsql:/docker-entrypoint-initdb.d:cached
- pgsql-data:/var/lib/postgresql/data
ports:
- "5432:5432"
memcached:
image: memcached:latest
hostname: memcached
ports:
- "11211:11211"
redis:
image: "redis:latest"
hostname: redis
ports:
- "6379:6379"
volumes:
mysql-data:
pgsql-data:
7 changes: 7 additions & 0 deletions docker/mysql/1_initialize_database.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
CREATE DATABASE IF NOT EXISTS cakephp_test ;
GRANT ALL ON cakephp_test.* TO 'cakephp_test'@'%' ;
CREATE DATABASE IF NOT EXISTS cakephp_test2 ;
GRANT ALL ON cakephp_test2.* TO 'cakephp_test'@'%' ;
CREATE DATABASE IF NOT EXISTS cakephp_test3 ;
GRANT ALL ON cakephp_test3.* TO 'cakephp_test'@'%' ;
FLUSH PRIVILEGES ;
4 changes: 4 additions & 0 deletions docker/pgsql/1_initialize_database.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
\c cakephp_test

CREATE SCHEMA test2;
CREATE SCHEMA test3;
25 changes: 25 additions & 0 deletions docker/web/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
FROM php:8.2-apache

RUN apt-get update && apt-get install -y --no-install-recommends \
&& apt-get install -y libpq-dev libzip-dev unzip openssl libmcrypt-dev libmemcached-dev locales \
&& rm -rf /var/lib/apt/lists/*

RUN docker-php-ext-install pdo_mysql pdo_pgsql zip \
&& pecl install apcu redis memcached mcrypt xdebug \
&& docker-php-ext-enable redis memcached mcrypt \
&& docker-php-ext-enable xdebug \
&& echo "extension=apcu.so" >> /usr/local/etc/php/php.ini \
&& echo "apc.enable_cli = 1" >> /usr/local/etc/php/php.ini

COPY --from=composer /usr/bin/composer /usr/local/bin/composer

RUN sed -i '/de_DE /s/^# //g' /etc/locale.gen \
&& sed -i '/es_ES /s/^# //g' /etc/locale.gen \
&& locale-gen

ENV APACHE_DOCUMENT_ROOT /var/www/html/app/webroot

RUN a2enmod rewrite

RUN sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf
RUN sed -ri -e 's!/var/www/!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf

0 comments on commit 86009b2

Please sign in to comment.