- Notifications
You must be signed in to change notification settings - Fork6
🐳 Docker 快速搭建 LEMP 开发环境
NotificationsYou must be signed in to change notification settings
metowolf/docker-lemp
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
name | pulls | version | layers | image size |
---|---|---|---|---|
metowolf/php | ||||
metowolf/nginx | ||||
mysql/mysql-server | ||||
library/redis | ||||
phpmyadmin/phpmyadmin |
- Clone docker-lemp inside your project
git clone https://github.com/metowolf/docker-lemp.git
- Enter the docker-lemp folder and rename .env.example to .env.
cd docker-lempcp .env.example .envcp docker-compose.example.yml docker-compose.yml
- Open your project’s .env file and set the following:
MYSQL_ROOT_PASSWORD=your_password
- Run your containers:
docker-compose up -d
The following configuration file can be used as a starting point to enable HTTP/3 support:
http {server {# Enable QUIC, HTTP/3 and HTTP/2 on both IPv4 and IPv6.listen443 ssl http2;listen443 quic;listen [::]:443 ssl http2;listen [::]:443 quic;ssl_certificate cert.crt;ssl_certificate_key cert.key;# Add HSTS headeradd_header Strict-Transport-Security"max-age=31536000; includeSubDomains; preload" always;# Add Alt-Svc header to negotiate HTTP/3.add_header alt-svc'h3-23=":443"; ma=86400';# Enable specific TLS versions (TLSv1 and TLSv1.1 are not longer saft, TLSv1.3 is required for QUIC).ssl_protocols TLSv1.2 TLSv1.3;ssl_ciphers TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:TLS-AES-128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256;ssl_prefer_server_ciphers on;ssl_early_data on; }}
- Add the following lines into the configuration file of your sites to enable
brotli
feature:
brotli on;brotli_comp_level 6;brotli_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript image/svg+xml;
- Modify project’s .env file.
vim .env
- Rebuild containers:
docker-compose up -d --no-deps --build
- Rename conflicted file if exists:
mv etc/nginx/nginx.conf etc/nginx/nginx.conf.bak
- Modify project’s .env file.
vim .env
- Move Nginx/MySQL/SSL configuration to new directory:
# move nginx configurationmv etc/nginx/config/* etc/nginx/conf.d/# move MySQL configurationrm -fr etc/mysql&& mkdir etc/mysql&& mkdir etc/mysql/my.cnf.dmv etc/database/data etc/mysql&& mv etc/database/config/* etc/mysql/my.cnf.d# move SSL configurationmv etc/ssl etc/nginx
- Rebuild containers and remove the
Caddy
container:
docker-compose up -d --no-deps --build --remove-orphans