Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .env.sample
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ NGINX_PORT=8080
###> php configuration ###

# php version
# ie: 5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0 and 8.1
PHP_VERSION=8.1
# ie: 8.4, 8.3, 8.2, 8.1, 8.0, 7.4, 7.3, 7.2, 7.1, 7.0, 5.6 and 6.5
PHP_VERSION=8.4

# php fpm expose port
PHP_FPM_PORT=9000
Expand All @@ -41,7 +41,7 @@ PHP_ENABLE_XDEBUG=0

# node version
# ie: 10.x, 11.x, 12.x, 13.x, 14.x, 16.x, 17.x, 18.x or any valid version
NODE_VERSION=18.x
NODE_VERSION=22.x

###< nodejs configuration ###
#############################
Expand All @@ -53,7 +53,7 @@ NODE_VERSION=18.x

# mariadb version
# ie: 10.1, 10.2, 10.3, 10.4, 10.5 or 10 or any valid version
MARIADB_VERSION=10
MARIADB_VERSION=12

# mariadb expose port
MARIADB_PORT=3306
Expand Down
35 changes: 21 additions & 14 deletions .github/workflows/docker-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,21 +21,28 @@ jobs:
wordpress-dev-docker-cache-
- name: Copy .env.sample to .env
run: cp .env.sample .env
- name: For php8.4
run: PHP_VERSION=8.4 docker compose -f docker-compose-publish.yml build
- name: For php8.3
run: PHP_VERSION=8.3 docker compose -f docker-compose-publish.yml build
- name: For php8.2
run: PHP_VERSION=8.2 docker compose -f docker-compose-publish.yml build
- name: For php8.1
run: PHP_VERSION=8.1 docker-compose -f docker-compose-publish.yml build
run: PHP_VERSION=8.1 docker compose -f docker-compose-publish.yml build
- name: For php8.0
run: PHP_VERSION=8.0 docker-compose -f docker-compose-publish.yml build
run: PHP_VERSION=8.0 docker compose -f docker-compose-publish.yml build
- name: For php7.4
run: PHP_VERSION=7.4 docker-compose -f docker-compose-publish.yml build
run: PHP_VERSION=7.4 docker compose -f docker-compose-publish.yml build
- name: For php7.3
run: PHP_VERSION=7.3 docker-compose -f docker-compose-publish.yml build
- name: For php7.2
run: PHP_VERSION=7.2 docker-compose -f docker-compose-publish.yml build
- name: For php7.1
run: PHP_VERSION=7.1 docker-compose -f docker-compose-publish.yml build
- name: For php7.0
run: PHP_VERSION=7.0 docker-compose -f docker-compose-publish.yml build
- name: For php5.6
run: PHP_VERSION=5.6 docker-compose -f docker-compose-publish.yml build
- name: For php5.5
run: PHP_VERSION=5.5 docker-compose -f docker-compose-publish.yml build
run: PHP_VERSION=7.3 docker compose -f docker-compose-publish.yml build
# Removed below for now
# - name: For php7.2
# run: PHP_VERSION=7.2 docker compose -f docker-compose-publish.yml build
# - name: For php7.1
# run: PHP_VERSION=7.1 docker compose -f docker-compose-publish.yml build
# - name: For php7.0
# run: PHP_VERSION=7.0 docker compose -f docker-compose-publish.yml build
# - name: For php5.6
# run: PHP_VERSION=5.6 docker compose -f docker-compose-publish.yml build
# - name: For php5.5
# run: PHP_VERSION=5.5 docker compose -f docker-compose-publish.yml build
35 changes: 21 additions & 14 deletions .github/workflows/docker-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,21 +28,28 @@ jobs:
run: docker login -u $DOCKER_USER -p $DOCKER_PASSWORD
- name: Copy .env.sample to .env
run: cp .env.sample .env
- name: For php8.4
run: PHP_VERSION=8.4 docker compose -f docker-compose-publish.yml build && PHP_VERSION=8.1 docker-compose -f docker-compose-publish.yml push
- name: For php8.3
run: PHP_VERSION=8.3 docker compose -f docker-compose-publish.yml build && PHP_VERSION=8.1 docker-compose -f docker-compose-publish.yml push
- name: For php8.2
run: PHP_VERSION=8.2 docker compose -f docker-compose-publish.yml build && PHP_VERSION=8.1 docker-compose -f docker-compose-publish.yml push
- name: For php8.1
run: PHP_VERSION=8.1 docker-compose -f docker-compose-publish.yml build && PHP_VERSION=8.1 docker-compose -f docker-compose-publish.yml push
run: PHP_VERSION=8.1 docker compose -f docker-compose-publish.yml build && PHP_VERSION=8.1 docker-compose -f docker-compose-publish.yml push
- name: For php8.0
run: PHP_VERSION=8.0 docker-compose -f docker-compose-publish.yml build && PHP_VERSION=8.0 docker-compose -f docker-compose-publish.yml push
run: PHP_VERSION=8.0 docker compose -f docker-compose-publish.yml build && PHP_VERSION=8.0 docker-compose -f docker-compose-publish.yml push
- name: For php7.4
run: PHP_VERSION=7.4 docker-compose -f docker-compose-publish.yml build && PHP_VERSION=7.4 docker-compose -f docker-compose-publish.yml push
run: PHP_VERSION=7.4 docker compose -f docker-compose-publish.yml build && PHP_VERSION=7.4 docker-compose -f docker-compose-publish.yml push
- name: For php7.3
run: PHP_VERSION=7.3 docker-compose -f docker-compose-publish.yml build && PHP_VERSION=7.3 docker-compose -f docker-compose-publish.yml push
- name: For php7.2
run: PHP_VERSION=7.2 docker-compose -f docker-compose-publish.yml build && PHP_VERSION=7.2 docker-compose -f docker-compose-publish.yml push
- name: For php7.1
run: PHP_VERSION=7.1 docker-compose -f docker-compose-publish.yml build && PHP_VERSION=7.1 docker-compose -f docker-compose-publish.yml push
- name: For php7.0
run: PHP_VERSION=7.0 docker-compose -f docker-compose-publish.yml build && PHP_VERSION=7.0 docker-compose -f docker-compose-publish.yml push
- name: For php5.6
run: PHP_VERSION=5.6 docker-compose -f docker-compose-publish.yml build && PHP_VERSION=5.6 docker-compose -f docker-compose-publish.yml push
- name: For php5.5
run: PHP_VERSION=5.5 docker-compose -f docker-compose-publish.yml build && PHP_VERSION=5.5 docker-compose -f docker-compose-publish.yml push
run: PHP_VERSION=7.3 docker compose -f docker-compose-publish.yml build && PHP_VERSION=7.3 docker-compose -f docker-compose-publish.yml push
# Removed below for now
# - name: For php7.2
# run: PHP_VERSION=7.2 docker compose -f docker-compose-publish.yml build && PHP_VERSION=7.2 docker-compose -f docker-compose-publish.yml push
# - name: For php7.1
# run: PHP_VERSION=7.1 docker compose -f docker-compose-publish.yml build && PHP_VERSION=7.1 docker-compose -f docker-compose-publish.yml push
# - name: For php7.0
# run: PHP_VERSION=7.0 docker compose -f docker-compose-publish.yml build && PHP_VERSION=7.0 docker-compose -f docker-compose-publish.yml push
# - name: For php5.6
# run: PHP_VERSION=5.6 docker compose -f docker-compose-publish.yml build && PHP_VERSION=5.6 docker-compose -f docker-compose-publish.yml push
# - name: For php5.5
# run: PHP_VERSION=5.5 docker compose -f docker-compose-publish.yml build && PHP_VERSION=5.5 docker-compose -f docker-compose-publish.yml push
35 changes: 21 additions & 14 deletions .github/workflows/docker-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,21 +33,28 @@ jobs:
run: docker login -u $DOCKER_USER -p $DOCKER_PASSWORD
- name: Copy .env.sample to .env
run: cp .env.sample .env
- name: For php8.4
run: PHP_VERSION=8.4 DOCKER_TAG=$GIT_TAG_NAME docker compose -f docker-compose-publish.yml build && PHP_VERSION=8.4 DOCKER_TAG=$GIT_TAG_NAME docker compose -f docker-compose-publish.yml push
- name: For php8.3
run: PHP_VERSION=8.3 DOCKER_TAG=$GIT_TAG_NAME docker compose -f docker-compose-publish.yml build && PHP_VERSION=8.3 DOCKER_TAG=$GIT_TAG_NAME docker compose -f docker-compose-publish.yml push
- name: For php8.2
run: PHP_VERSION=8.2 DOCKER_TAG=$GIT_TAG_NAME docker compose -f docker-compose-publish.yml build && PHP_VERSION=8.2 DOCKER_TAG=$GIT_TAG_NAME docker compose -f docker-compose-publish.yml push
- name: For php8.1
run: PHP_VERSION=8.1 DOCKER_TAG=$GIT_TAG_NAME docker-compose -f docker-compose-publish.yml build && PHP_VERSION=8.1 DOCKER_TAG=$GIT_TAG_NAME docker-compose -f docker-compose-publish.yml push
run: PHP_VERSION=8.1 DOCKER_TAG=$GIT_TAG_NAME docker compose -f docker-compose-publish.yml build && PHP_VERSION=8.1 DOCKER_TAG=$GIT_TAG_NAME docker compose -f docker-compose-publish.yml push
- name: For php8.0
run: PHP_VERSION=8.0 DOCKER_TAG=$GIT_TAG_NAME docker-compose -f docker-compose-publish.yml build && PHP_VERSION=8.0 DOCKER_TAG=$GIT_TAG_NAME docker-compose -f docker-compose-publish.yml push
run: PHP_VERSION=8.0 DOCKER_TAG=$GIT_TAG_NAME docker compose -f docker-compose-publish.yml build && PHP_VERSION=8.0 DOCKER_TAG=$GIT_TAG_NAME docker compose -f docker-compose-publish.yml push
- name: For php7.4
run: PHP_VERSION=7.4 DOCKER_TAG=$GIT_TAG_NAME docker-compose -f docker-compose-publish.yml build && PHP_VERSION=7.4 DOCKER_TAG=$GIT_TAG_NAME docker-compose -f docker-compose-publish.yml push
run: PHP_VERSION=7.4 DOCKER_TAG=$GIT_TAG_NAME docker compose -f docker-compose-publish.yml build && PHP_VERSION=7.4 DOCKER_TAG=$GIT_TAG_NAME docker compose -f docker-compose-publish.yml push
- name: For php7.3
run: PHP_VERSION=7.3 DOCKER_TAG=$GIT_TAG_NAME docker-compose -f docker-compose-publish.yml build && PHP_VERSION=7.3 DOCKER_TAG=$GIT_TAG_NAME docker-compose -f docker-compose-publish.yml push
- name: For php7.2
run: PHP_VERSION=7.2 DOCKER_TAG=$GIT_TAG_NAME docker-compose -f docker-compose-publish.yml build && PHP_VERSION=7.2 DOCKER_TAG=$GIT_TAG_NAME docker-compose -f docker-compose-publish.yml push
- name: For php7.1
run: PHP_VERSION=7.1 DOCKER_TAG=$GIT_TAG_NAME docker-compose -f docker-compose-publish.yml build && PHP_VERSION=7.1 DOCKER_TAG=$GIT_TAG_NAME docker-compose -f docker-compose-publish.yml push
- name: For php7.0
run: PHP_VERSION=7.0 DOCKER_TAG=$GIT_TAG_NAME docker-compose -f docker-compose-publish.yml build && PHP_VERSION=7.0 DOCKER_TAG=$GIT_TAG_NAME docker-compose -f docker-compose-publish.yml push
- name: For php5.6
run: PHP_VERSION=5.6 DOCKER_TAG=$GIT_TAG_NAME docker-compose -f docker-compose-publish.yml build && PHP_VERSION=5.6 DOCKER_TAG=$GIT_TAG_NAME docker-compose -f docker-compose-publish.yml push
- name: For php5.5
run: PHP_VERSION=5.5 DOCKER_TAG=$GIT_TAG_NAME docker-compose -f docker-compose-publish.yml build && PHP_VERSION=5.5 DOCKER_TAG=$GIT_TAG_NAME docker-compose -f docker-compose-publish.yml push
run: PHP_VERSION=7.3 DOCKER_TAG=$GIT_TAG_NAME docker compose -f docker-compose-publish.yml build && PHP_VERSION=7.3 DOCKER_TAG=$GIT_TAG_NAME docker compose -f docker-compose-publish.yml push
# Removed below for now
# - name: For php7.2
# run: PHP_VERSION=7.2 DOCKER_TAG=$GIT_TAG_NAME docker compose -f docker-compose-publish.yml build && PHP_VERSION=7.2 DOCKER_TAG=$GIT_TAG_NAME docker compose -f docker-compose-publish.yml push
# - name: For php7.1
# run: PHP_VERSION=7.1 DOCKER_TAG=$GIT_TAG_NAME docker compose -f docker-compose-publish.yml build && PHP_VERSION=7.1 DOCKER_TAG=$GIT_TAG_NAME docker compose -f docker-compose-publish.yml push
# - name: For php7.0
# run: PHP_VERSION=7.0 DOCKER_TAG=$GIT_TAG_NAME docker compose -f docker-compose-publish.yml build && PHP_VERSION=7.0 DOCKER_TAG=$GIT_TAG_NAME docker compose -f docker-compose-publish.yml push
# - name: For php5.6
# run: PHP_VERSION=5.6 DOCKER_TAG=$GIT_TAG_NAME docker compose -f docker-compose-publish.yml build && PHP_VERSION=5.6 DOCKER_TAG=$GIT_TAG_NAME docker compose -f docker-compose-publish.yml push
# - name: For php5.5
# run: PHP_VERSION=5.5 DOCKER_TAG=$GIT_TAG_NAME docker compose -f docker-compose-publish.yml build && PHP_VERSION=5.5 DOCKER_TAG=$GIT_TAG_NAME docker compose -f docker-compose-publish.yml push
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ A development docker for every wordpress project

- Build for wordpress and has cli tools
- Bundle of `fpm`, `cli`, `nginx`, `mariadb`, `phpmyadmin` and `redis` containers
- PHP 5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0 and 8.1 supported
- Database mariadb 10.x, mongodb 4.x ... supported
- Node 14.x, 16.x, 17.x, 18.x, ... supported
- PHP 8.4, 8.3, 8.2, 8.1, 8.0, 7.4, 7.3, 7.2, 7.1, 7.0, 5.6 and 5.5 supported
- Database mariadb 12.x, mariadb 11.x, mariadb 10.x, mongodb 4.x ... supported
- Node 22.x, 20.x, 18.x, 17.x, 16.x, ... supported
- Included wp, composer and node cli
- Support for PhpStorm or VSCode + WSL2/docker-desktop setup
- Support for xdebug included check `.env` file
Expand Down
2 changes: 1 addition & 1 deletion docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ services:
- ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf:cached
depends_on:
- fpm

mariadb:
image: mariadb:${MARIADB_VERSION}
ports:
Expand Down
73 changes: 73 additions & 0 deletions php8.2/cli/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
FROM php:8.2-cli

LABEL maintainer="ReadyMadeHost http://readymadehost.com"

# Installing required packages
RUN apt-get update
RUN apt-get install --no-install-recommends -y procps \
curl \
git \
vim \
zip \
unzip \
wget
RUN apt-get install --no-install-recommends -y mariadb-client

ARG NODE_VERSION
ENV NODE_VERSION ${NODE_VERSION}

# Installing node
RUN curl -sL https://deb.nodesource.com/setup_${NODE_VERSION} | bash -
RUN apt-get -y install nodejs

# Installing yarn using npm
RUN npm install --global yarn

# Installing extensions
RUN curl -L https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions \
-o /usr/local/bin/install-php-extensions && chmod +x /usr/local/bin/install-php-extensions

# Installing extensions
RUN install-php-extensions \
mysqli \
pdo_mysql \
intl \
mbstring \
zip \
exif \
pcntl \
bcmath \
opcache \
gd \
imagick \
apcu \
@composer

# Installing other extensions but enabled dynamically
RUN IPE_DONT_ENABLE=1 install-php-extensions redis \
xdebug

# Updating php.ini
ADD conf/php.ini /usr/local/etc/php/php.ini

# Installing wordpress cli
RUN curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
RUN chmod +x wp-cli.phar
RUN mv wp-cli.phar /usr/local/bin/wp

# Manage project and add scripts
RUN mkdir -p /var/www/project
ADD manage-project-permission.sh /root/manage-project-permission.sh
RUN chmod +x /root/manage-project-permission.sh
RUN echo 'alias mpp="/root/manage-project-permission.sh"' >> /root/.bashrc
RUN /root/manage-project-permission.sh

ARG PHP_ENABLE_REDIS
ENV PHP_ENABLE_REDIS ${PHP_ENABLE_REDIS}
ARG PHP_ENABLE_XDEBUG
ENV PHP_ENABLE_XDEBUG ${PHP_ENABLE_XDEBUG}

ADD docker-entrypoint.sh /root/docker-entrypoint.sh
RUN chmod +x /root/docker-entrypoint.sh

CMD ["/root/docker-entrypoint.sh", "bash"]
Loading
Loading