Add local environment with Docker Compose
This commit is contained in:
parent
f764004f89
commit
d8a1616481
7
.dockerignore
Normal file
7
.dockerignore
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
/**/*.{md,txt}
|
||||||
|
/.git-blame-ignore-revs
|
||||||
|
/.git/
|
||||||
|
/.github/
|
||||||
|
/.gitignore
|
||||||
|
/.idea/
|
||||||
|
/.notes/
|
52
docker-compose.yaml
Normal file
52
docker-compose.yaml
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
version: '2.4'
|
||||||
|
|
||||||
|
networks:
|
||||||
|
public:
|
||||||
|
external:
|
||||||
|
name: traefik_proxy
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
node_modules: ~
|
||||||
|
|
||||||
|
services:
|
||||||
|
nginx:
|
||||||
|
image: nginx:1
|
||||||
|
working_dir: /app
|
||||||
|
volumes:
|
||||||
|
- ./:/app
|
||||||
|
- ./tools/docker/images/nginx/configs/vhost.conf:/etc/nginx/conf.d/default.conf
|
||||||
|
# ports:
|
||||||
|
# - 9000:80
|
||||||
|
depends_on:
|
||||||
|
node:
|
||||||
|
condition: service_started
|
||||||
|
php:
|
||||||
|
condition: service_started
|
||||||
|
networks:
|
||||||
|
default: {}
|
||||||
|
public: {}
|
||||||
|
labels:
|
||||||
|
- traefik.docker.network=traefik_proxy
|
||||||
|
- traefik.enable=true
|
||||||
|
- traefik.http.routers.workshop-tailwind.rule=Host(`workshop-tailwind.docker.localhost`)
|
||||||
|
|
||||||
|
php:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: tools/docker/Dockerfile
|
||||||
|
target: dev
|
||||||
|
volumes:
|
||||||
|
- ./:/app
|
||||||
|
networks:
|
||||||
|
default: {}
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=false"
|
||||||
|
|
||||||
|
node:
|
||||||
|
image: node:12
|
||||||
|
working_dir: /node/app
|
||||||
|
volumes:
|
||||||
|
- .:/node/app
|
||||||
|
- node_modules:/node/app/node_modules
|
||||||
|
labels:
|
||||||
|
- "traefik.enabled=false"
|
35
tools/docker/Dockerfile
Normal file
35
tools/docker/Dockerfile
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
fROM php:7.3-fpm-buster AS base
|
||||||
|
|
||||||
|
RUN apt update -yqq && apt install -yqq \
|
||||||
|
git \
|
||||||
|
libpng-dev \
|
||||||
|
mariadb-client \
|
||||||
|
zip \
|
||||||
|
zlib1g-dev \
|
||||||
|
&& docker-php-ext-install \
|
||||||
|
exif \
|
||||||
|
gd \
|
||||||
|
pdo_mysql
|
||||||
|
|
||||||
|
###
|
||||||
|
|
||||||
|
FROM base AS dev
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
ENV PATH="./bin:./vendor/bin:$PATH"
|
||||||
|
|
||||||
|
RUN apt update -yqq \
|
||||||
|
&& apt install -yqq \
|
||||||
|
pv \
|
||||||
|
vim \
|
||||||
|
&& pecl install xdebug-2.9.0 \
|
||||||
|
&& docker-php-ext-enable xdebug
|
||||||
|
|
||||||
|
COPY --from=composer:1 /usr/bin/composer /usr/bin/composer
|
||||||
|
|
||||||
|
COPY composer.json composer.lock /app/
|
||||||
|
COPY assets /app/assets
|
||||||
|
RUN composer install
|
||||||
|
|
||||||
|
COPY tools/docker/images/php/configs/php.ini /usr/local/etc/php/conf.d/php.ini
|
19
tools/docker/images/nginx/configs/vhost.conf
Normal file
19
tools/docker/images/nginx/configs/vhost.conf
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
server {
|
||||||
|
server_name _;
|
||||||
|
root /app/public;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
try_files $uri /index.php?$query_string;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~ \.php(/|$) {
|
||||||
|
fastcgi_split_path_info ^(.+?\.php)(|/.*)$;
|
||||||
|
try_files $fastcgi_script_name =404;
|
||||||
|
include fastcgi_params;
|
||||||
|
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||||
|
fastcgi_param PATH_INFO $fastcgi_path_info;
|
||||||
|
fastcgi_param QUERY_STRING $query_string;
|
||||||
|
fastcgi_intercept_errors on;
|
||||||
|
fastcgi_pass php:9000;
|
||||||
|
}
|
||||||
|
}
|
2
tools/docker/images/php/configs/php.ini
Normal file
2
tools/docker/images/php/configs/php.ini
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
date.timezone=UTC
|
||||||
|
expose_php=Off
|
Loading…
Reference in a new issue