Docker config
This commit is contained in:
parent
08d696985a
commit
b3d12bd9b2
@ -1,18 +0,0 @@
|
|||||||
|
|
||||||
services:
|
|
||||||
###> doctrine/doctrine-bundle ###
|
|
||||||
database:
|
|
||||||
ports:
|
|
||||||
- "5432"
|
|
||||||
###< doctrine/doctrine-bundle ###
|
|
||||||
|
|
||||||
###> symfony/mailer ###
|
|
||||||
mailer:
|
|
||||||
image: axllent/mailpit
|
|
||||||
ports:
|
|
||||||
- "1025"
|
|
||||||
- "8025"
|
|
||||||
environment:
|
|
||||||
MP_SMTP_AUTH_ACCEPT_ANY: 1
|
|
||||||
MP_SMTP_AUTH_ALLOW_INSECURE: 1
|
|
||||||
###< symfony/mailer ###
|
|
||||||
25
compose.yaml
25
compose.yaml
@ -1,25 +0,0 @@
|
|||||||
|
|
||||||
services:
|
|
||||||
###> doctrine/doctrine-bundle ###
|
|
||||||
database:
|
|
||||||
image: postgres:${POSTGRES_VERSION:-16}-alpine
|
|
||||||
environment:
|
|
||||||
POSTGRES_DB: ${POSTGRES_DB:-app}
|
|
||||||
# You should definitely change the password in production
|
|
||||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-!ChangeMe!}
|
|
||||||
POSTGRES_USER: ${POSTGRES_USER:-app}
|
|
||||||
healthcheck:
|
|
||||||
test: ["CMD", "pg_isready", "-d", "${POSTGRES_DB:-app}", "-U", "${POSTGRES_USER:-app}"]
|
|
||||||
timeout: 5s
|
|
||||||
retries: 5
|
|
||||||
start_period: 60s
|
|
||||||
volumes:
|
|
||||||
- database_data:/var/lib/postgresql/data:rw
|
|
||||||
# You may use a bind-mounted host directory instead, so that it is harder to accidentally remove the volume and lose all your data!
|
|
||||||
# - ./docker/db/data:/var/lib/postgresql/data:rw
|
|
||||||
###< doctrine/doctrine-bundle ###
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
###> doctrine/doctrine-bundle ###
|
|
||||||
database_data:
|
|
||||||
###< doctrine/doctrine-bundle ###
|
|
||||||
@ -1,17 +1,52 @@
|
|||||||
services:
|
services:
|
||||||
ukhorsecremations.co.uk-web:
|
ukhorsecremations.co.uk-nginx:
|
||||||
container_name: ukhorsecremations.co.uk-web
|
image: nginx:latest
|
||||||
build: .
|
container_name: ukhorsecremations.co.uk-nginx
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
working_dir: /var/www
|
||||||
labels:
|
labels:
|
||||||
- traefik.enable=true
|
- traefik.enable=true
|
||||||
- traefik.docker.network=proxy
|
- traefik.docker.network=proxy
|
||||||
- traefik.http.routers.ukhorsecremations-co-uk.rule=Host(`ukhorsecremations-co-uk.web1.phatkoala.net`)
|
- traefik.http.routers.ukhorsecremations-co-uk.rule=Host(`ukhorsecremations-co-uk.web1.phatkoala.net`)
|
||||||
- traefik.http.services.ukhorsecremations-co-uk.loadbalancer.server.port=3000
|
- traefik.http.services.ukhorsecremations-co-uk.loadbalancer.server.port=3000
|
||||||
- traefik.http.routers.ukhorsecremations-co-uk.middlewares=basic-auth@file
|
- traefik.http.routers.ukhorsecremations-co-uk.middlewares=basic-auth@file
|
||||||
|
volumes:
|
||||||
|
- './etc/nginx/nginx.conf:/etc/nginx/nginx.conf'
|
||||||
|
- './:/var/www'
|
||||||
networks:
|
networks:
|
||||||
- proxy
|
- internal
|
||||||
|
- external
|
||||||
|
|
||||||
|
# ukhorsecremations.co.uk-node:
|
||||||
|
# container_name: ukhorsecremations.co.uk-node
|
||||||
|
# build:
|
||||||
|
# context: .
|
||||||
|
# dockerfile: ./etc/node/Dockerfile
|
||||||
|
|
||||||
|
ukhorsecremations.co.uk-php:
|
||||||
|
container_name: ukhorsecremations.co.uk-php
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: ./etc/php/Dockerfile
|
||||||
|
args:
|
||||||
|
APP_ENV: ${APP_ENV}
|
||||||
|
restart: unless-stopped
|
||||||
|
working_dir: /var/www
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
volumes:
|
||||||
|
- './etc/php/php.ini:/usr/local/etc/php/conf.d/site.ini'
|
||||||
|
- './:/var/www'
|
||||||
|
expose:
|
||||||
|
- "9000"
|
||||||
|
networks:
|
||||||
|
- internal
|
||||||
|
- external
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
proxy:
|
internal:
|
||||||
external: true
|
name: "internal"
|
||||||
|
internal: true
|
||||||
|
external:
|
||||||
|
name: "external"
|
||||||
|
driver: bridge
|
||||||
|
|||||||
94
etc/nginx/nginx.conf
Normal file
94
etc/nginx/nginx.conf
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
worker_processes auto;
|
||||||
|
error_log stderr warn;
|
||||||
|
pid /run/nginx.pid;
|
||||||
|
|
||||||
|
events {
|
||||||
|
worker_connections 1024;
|
||||||
|
}
|
||||||
|
|
||||||
|
http {
|
||||||
|
include mime.types;
|
||||||
|
default_type application/octet-stream;
|
||||||
|
|
||||||
|
# Define custom log format to include reponse times
|
||||||
|
log_format main_timed '$remote_addr - $remote_user [$time_local] "$request" '
|
||||||
|
'$status $body_bytes_sent "$http_referer" '
|
||||||
|
'"$http_user_agent" "$http_x_forwarded_for" '
|
||||||
|
'$request_time $upstream_response_time $pipe $upstream_cache_status';
|
||||||
|
|
||||||
|
access_log /dev/stdout main_timed;
|
||||||
|
error_log /dev/stderr notice;
|
||||||
|
|
||||||
|
keepalive_timeout 65;
|
||||||
|
|
||||||
|
# Write temporary files to /tmp so they can be created as a non-privileged user
|
||||||
|
client_body_temp_path /tmp/client_temp;
|
||||||
|
proxy_temp_path /tmp/proxy_temp_path;
|
||||||
|
fastcgi_temp_path /tmp/fastcgi_temp;
|
||||||
|
uwsgi_temp_path /tmp/uwsgi_temp;
|
||||||
|
scgi_temp_path /tmp/scgi_temp;
|
||||||
|
|
||||||
|
# Default server definition
|
||||||
|
server {
|
||||||
|
listen [::]:443 default_server;
|
||||||
|
listen 443 default_server;
|
||||||
|
server_name ukhorsecremations.co.uk;
|
||||||
|
|
||||||
|
sendfile off;
|
||||||
|
|
||||||
|
root /var/www/public;
|
||||||
|
index index.php index.html;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
# First attempt to serve request as file, then
|
||||||
|
# as directory, then fall back to index.php
|
||||||
|
try_files $uri $uri/ /index.php?q=$uri&$args;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Redirect server error pages to the static page /50x.html
|
||||||
|
error_page 500 502 503 504 /50x.html;
|
||||||
|
location = /50x.html {
|
||||||
|
root /var/lib/nginx/html;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Pass the PHP scripts to PHP-FPM listening on 127.0.0.1:9000
|
||||||
|
location ~ \.php$ {
|
||||||
|
try_files $uri =404;
|
||||||
|
fastcgi_split_path_info ^(.+\.php)(/.+)$;
|
||||||
|
fastcgi_pass ukhorsecremations.co.uk-php:9000;
|
||||||
|
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||||
|
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
|
||||||
|
fastcgi_index index.php;
|
||||||
|
include fastcgi_params;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ {
|
||||||
|
expires 5d;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Deny access to . files, for security
|
||||||
|
location ~ /\. {
|
||||||
|
log_not_found off;
|
||||||
|
deny all;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Allow fpm ping and status from localhost
|
||||||
|
location ~ ^/(fpm-status|fpm-ping)$ {
|
||||||
|
access_log off;
|
||||||
|
allow 127.0.0.1;
|
||||||
|
deny all;
|
||||||
|
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||||
|
include fastcgi_params;
|
||||||
|
fastcgi_pass 127.0.0.1:9000;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
gzip on;
|
||||||
|
gzip_proxied any;
|
||||||
|
gzip_types text/plain application/xml text/css text/js text/xml application/x-javascript text/javascript application/json application/xml+rss;
|
||||||
|
gzip_vary on;
|
||||||
|
gzip_disable "msie6";
|
||||||
|
|
||||||
|
# Include other server configs
|
||||||
|
include /etc/nginx/conf.d/*.conf;
|
||||||
|
}
|
||||||
11
etc/node/Dockerfile
Normal file
11
etc/node/Dockerfile
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
FROM node:12 AS node
|
||||||
|
WORKDIR /app
|
||||||
|
COPY assets/ assets/
|
||||||
|
COPY public/wp-content/themes/phatkoala.uk/ public/wp-content/themes/phatkoala.uk/
|
||||||
|
COPY package.json package.json
|
||||||
|
COPY postcss.config.js postcss.config.js
|
||||||
|
COPY tailwind.config.js tailwind.config.js
|
||||||
|
COPY webpack.config.js webpack.config.js
|
||||||
|
COPY yarn.lock yarn.lock
|
||||||
|
RUN yarn install --immutable
|
||||||
|
RUN yarn encore production
|
||||||
39
etc/php/Dockerfile
Normal file
39
etc/php/Dockerfile
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
FROM php:8.4-fpm
|
||||||
|
|
||||||
|
# PHP Extensions
|
||||||
|
ADD https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/
|
||||||
|
RUN chmod +x /usr/local/bin/install-php-extensions && install-php-extensions \
|
||||||
|
bcmath curl dom exif fileinfo filter hash iconv intl imagick json memcached mbstring mysqli opcache openssl pcre \
|
||||||
|
redis simplexml xml xmlreader zlib zip
|
||||||
|
|
||||||
|
# New Relic
|
||||||
|
#ARG NEW_RELIC_AGENT_VERSION
|
||||||
|
#ARG NEW_RELIC_LICENSE_KEY
|
||||||
|
#ARG NEW_RELIC_APPNAME
|
||||||
|
#ARG NEW_RELIC_DAEMON_ADDRESS
|
||||||
|
|
||||||
|
#RUN curl -L "https://download.newrelic.com/php_agent/release/newrelic-php5-${NEW_RELIC_AGENT_VERSION}-linux.tar.gz" | tar -C /tmp -zx \
|
||||||
|
# && export NR_INSTALL_USE_CP_NOT_LN=1 \
|
||||||
|
# && export NR_INSTALL_SILENT=1 \
|
||||||
|
# && /tmp/newrelic-php5-*/newrelic-install install \
|
||||||
|
# && rm -rf /tmp/newrelic-php5-* /tmp/nrinstall*
|
||||||
|
#
|
||||||
|
#RUN sed -i -e s/\"REPLACE_WITH_REAL_KEY\"/${NEW_RELIC_LICENSE_KEY}/ \
|
||||||
|
# -e s/newrelic.appname[[:space:]]=[[:space:]].\*/newrelic.appname="${NEW_RELIC_APPNAME}"/ \
|
||||||
|
# -e s/\;newrelic.daemon.address[[:space:]]=[[:space:]].\*/newrelic.daemon.address="newrelic-php-daemon:31339"/ \
|
||||||
|
# /usr/local/etc/php/conf.d/newrelic.ini
|
||||||
|
|
||||||
|
# Configure email sending
|
||||||
|
#RUN apt-get update && apt-get install -y zlib1g-dev libzip-dev sendmail
|
||||||
|
#RUN echo "sendmail_path=/usr/sbin/sendmail -t -i" >> /usr/local/etc/php/conf.d/sendmail.ini
|
||||||
|
#RUN sed -i '/#!\/bin\/sh/aservice sendmail restart' /usr/local/bin/docker-php-entrypoint
|
||||||
|
#RUN sed -i '/#!\/bin\/sh/aecho "$(hostname -i)\t$(hostname) $(hostname).localhost" >> /etc/hosts' /usr/local/bin/docker-php-entrypoint
|
||||||
|
#RUN rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
# Local development
|
||||||
|
ARG APP_ENV
|
||||||
|
RUN if [ "${APP_ENV}" = "dev" ] ; then \
|
||||||
|
cp -f "$PHP_INI_DIR/php.ini-development" "$PHP_INI_DIR/php.ini" && \
|
||||||
|
pecl install xdebug && \
|
||||||
|
docker-php-ext-enable xdebug; \
|
||||||
|
fi
|
||||||
18
etc/php/php.ini
Normal file
18
etc/php/php.ini
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
[PHP]
|
||||||
|
memory_limit = 512M
|
||||||
|
display_errors = 1
|
||||||
|
error_reporting = E_ALL
|
||||||
|
|
||||||
|
[Date]
|
||||||
|
date.timezone="UTC"
|
||||||
|
|
||||||
|
[xdebug]
|
||||||
|
xdebug.mode = develop,debug
|
||||||
|
xdebug.client_host = host.docker.internal
|
||||||
|
xdebug.client_port = 9003
|
||||||
|
xdebug.discover_client_host = off
|
||||||
|
xdebug.idekey = PHPSTORM
|
||||||
|
xdebug.cli_color = 1
|
||||||
|
|
||||||
|
[newrelic]
|
||||||
|
newrelic.loglevel = info
|
||||||
Loading…
Reference in New Issue
Block a user