Skip to content
Open
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
2 changes: 2 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
vendor
.git
33 changes: 33 additions & 0 deletions dev.dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
FROM php:8.1 AS php
RUN apt update && apt install -y unzip zip wget
WORKDIR /root
# Install composer
RUN wget https://raw.githubusercontent.com/composer/getcomposer.org/cd8ca011326ab9a17a555846c69461c1d53c1895/web/installer -O - -q | php -- --quiet

FROM php AS prod_dependencies
# Install only production dependencies
WORKDIR /src
ADD composer.json /src/
ADD composer.lock /src/
RUN /root/composer.phar install --no-dev
ADD . /src

FROM php AS dev_dependencies
# Install all dependencies (including dev)
WORKDIR /src
ADD composer.json /src/
ADD composer.lock /src/
RUN /root/composer.phar install
ADD . /src

FROM dev_dependencies AS test
RUN /src/vendor/bin/phpunit --process-isolation tests

FROM dev_dependencies AS lint
WORKDIR /src
RUN /src/vendor/bin/phpcs --config-set installed_paths ../../phpcsstandards/phpcsextra,../../phpcsstandards/phpcsutils,../../wp-coding-standards/wpcs
RUN /src/vendor/bin/phpcs -ps --standard=WordPress class-duouniversal-*.php

FROM prod_dependencies AS package
WORKDIR /src
RUN ./package.sh
20 changes: 20 additions & 0 deletions taskfile.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Run using https://taskfile.dev/
# Or manually copy/paste these commands as needed.
version: '3'

tasks:
run:
- docker-compose up -d
- cmd: echo "Visit localhost/wp-login.php in a browser to continue setup"
silent: true
- cmd: echo "Run 'task stop' to stop"
silent: true
stop:
- docker-compose stop
test:
- docker build -f dev.dockerfile -t duo_wordpress --target test .
lint:
- docker build -f dev.dockerfile -t duo_wordpress --target lint .
package:
- docker build -f dev.dockerfile -t duo_wordpress --target package .
- docker run --rm duo_wordpress cat /src/duo-universal.zip > duo-universal.zip