Skip to content

Commit 629f639

Browse files
committed
feat: update Docker configuration to use nginx as server
1 parent 9983fda commit 629f639

File tree

4 files changed

+124
-129
lines changed

4 files changed

+124
-129
lines changed
Lines changed: 95 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -1,99 +1,101 @@
11
services:
2-
bamboocms-php-nginx:
3-
container_name: bamboocms-php-nginx
4-
image: bamboocms-php-nginx
5-
volumes:
6-
- ../:/home/wwwroot/bamboocms-php
7-
- ./php/custom_php.ini:/usr/local/etc/php/conf.d/custom_php.ini
8-
- ./php/docker-php-ext-xdebug.ini:/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
9-
- "/home/php/extension:/root/.vscode-server/extensions"
10-
- "/home/php/extension-insiders:/root/.vscode-server-insiders/extensions"
11-
build:
12-
context: .
13-
dockerfile: ./php/dev.Dockerfile
14-
ports:
15-
- 31111:80
16-
stdin_open: true
17-
deploy:
18-
resources:
19-
limits:
20-
cpus: "6.0"
21-
memory: 10000M
22-
networks:
23-
bamboocms-php-net:
24-
ipv4_address: 172.16.111.11
2+
bamboocms-php-nginx:
3+
container_name: bamboocms-php-nginx
4+
image: bamboocms-php-nginx
5+
volumes:
6+
- ../:/home/wwwroot/bamboocms-php
7+
- ./php/nginx-site.conf:/etc/nginx/conf.d/default.conf
8+
- ./php/supervisord.conf:/etc/supervisor/conf.d/supervisord.conf
9+
- ./php/custom_php.ini:/usr/local/etc/php/conf.d/custom_php.ini
10+
- ./php/docker-php-ext-xdebug.ini:/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
11+
- /home/php/extension:/root/.vscode-server/extensions
12+
- /home/php/extension-insiders:/root/.vscode-server-insiders/extensions
13+
build:
14+
context: .
15+
dockerfile: ./php/dev.Dockerfile
16+
ports:
17+
- 31111:80
18+
stdin_open: true
19+
deploy:
20+
resources:
21+
limits:
22+
cpus: "2.0"
23+
memory: 2000M
24+
networks:
25+
bamboocms-php-net:
26+
ipv4_address: 172.16.111.11
2527

26-
bamboocms-php-mysql:
27-
container_name: bamboocms-php-mysql
28-
image: mysql:8.0
29-
restart: always
30-
environment:
31-
MYSQL_ROOT_PASSWORD: root
32-
MYSQL_DATABASE: db
33-
MYSQL_USER: user
34-
MYSQL_PASSWORD: pass
35-
TZ: 'Etc/UTC'
36-
ports:
37-
- 31112:3306
38-
volumes:
39-
- /home/mysql/bamboocms-php-mysql:/var/lib/mysql
40-
deploy:
41-
resources:
42-
limits:
43-
cpus: "1.0"
44-
memory: 1000M
45-
networks:
46-
bamboocms-php-net:
47-
ipv4_address: 172.16.111.12
28+
bamboocms-php-mysql:
29+
container_name: bamboocms-php-mysql
30+
image: mysql:8.0
31+
restart: always
32+
environment:
33+
MYSQL_ROOT_PASSWORD: root
34+
MYSQL_DATABASE: db
35+
MYSQL_USER: user
36+
MYSQL_PASSWORD: pass
37+
TZ: "Etc/UTC"
38+
ports:
39+
- 31112:3306
40+
volumes:
41+
- /home/mysql/bamboocms-php-mysql:/var/lib/mysql
42+
deploy:
43+
resources:
44+
limits:
45+
cpus: "1.0"
46+
memory: 1000M
47+
networks:
48+
bamboocms-php-net:
49+
ipv4_address: 172.16.111.12
4850

49-
bamboocms-php-phpmyadmin:
50-
container_name: bamboocms-php-phpmyadmin
51-
image: phpmyadmin
52-
restart: always
53-
ports:
54-
- 31113:80
55-
environment:
56-
- PMA_HOST=172.16.111.12
57-
- PMA_PORT=3306
58-
- PMA_USER=user
59-
- PMA_PASSWORD=pass
60-
depends_on:
61-
- bamboocms-php-mysql
62-
deploy:
63-
resources:
64-
limits:
65-
cpus: "1.0"
66-
memory: 1000M
67-
networks:
68-
bamboocms-php-net:
69-
ipv4_address: 172.16.111.13
51+
bamboocms-php-phpmyadmin:
52+
container_name: bamboocms-php-phpmyadmin
53+
image: phpmyadmin
54+
restart: always
55+
ports:
56+
- 31113:80
57+
environment:
58+
- PMA_HOST=172.16.111.12
59+
- PMA_PORT=3306
60+
- PMA_USER=user
61+
- PMA_PASSWORD=pass
62+
depends_on:
63+
- bamboocms-php-mysql
64+
deploy:
65+
resources:
66+
limits:
67+
cpus: "1.0"
68+
memory: 1000M
69+
networks:
70+
bamboocms-php-net:
71+
ipv4_address: 172.16.111.13
7072

71-
bamboocms-php-testing-mysql:
72-
container_name: bamboocms-php-testing-mysql
73-
image: mysql:8.0
74-
restart: always
75-
environment:
76-
MYSQL_ROOT_PASSWORD: root
77-
MYSQL_DATABASE: test
78-
MYSQL_USER: test
79-
MYSQL_PASSWORD: test
80-
TZ: 'Etc/UTC'
81-
ports:
82-
- 31114:3306
83-
volumes:
84-
- /home/mysql/bamboocms-php-testing-mysql:/var/lib/mysql
85-
deploy:
86-
resources:
87-
limits:
88-
cpus: "1.0"
89-
memory: 1000M
90-
networks:
91-
bamboocms-php-net:
92-
ipv4_address: 172.16.111.14
73+
bamboocms-php-testing-mysql:
74+
container_name: bamboocms-php-testing-mysql
75+
image: mysql:8.0
76+
restart: always
77+
environment:
78+
MYSQL_ROOT_PASSWORD: root
79+
MYSQL_DATABASE: test
80+
MYSQL_USER: test
81+
MYSQL_PASSWORD: test
82+
TZ: "Etc/UTC"
83+
ports:
84+
- 31114:3306
85+
volumes:
86+
- /home/mysql/bamboocms-php-testing-mysql:/var/lib/mysql
87+
deploy:
88+
resources:
89+
limits:
90+
cpus: "1.0"
91+
memory: 1000M
92+
networks:
93+
bamboocms-php-net:
94+
ipv4_address: 172.16.111.14
9395

9496
networks:
95-
bamboocms-php-net:
96-
ipam:
97-
driver: default
98-
config:
99-
- subnet: 172.16.111.0/24
97+
bamboocms-php-net:
98+
ipam:
99+
driver: default
100+
config:
101+
- subnet: 172.16.111.0/24

bamboocms-php-docker/php/dev.Dockerfile

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,15 @@
11
FROM php:8.3-fpm
22

3-
ARG WORKDIR=/home/wwwroot/bamboocms-php
4-
ENV DOCUMENT_ROOT=${WORKDIR}
3+
ENV DOCUMENT_ROOT=/home/wwwroot/bamboocms-php
54
ENV NODE_VERSION=20.x
65

7-
ARG GROUP_ID=1000
8-
ARG USER_ID=1000
9-
ARG USER_NAME=www-data
10-
ARG GROUP_NAME=www-data
6+
RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"
117

128
ARG TZ=UTC
139
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
1410

15-
RUN service cron start
16-
RUN update-rc.d cron defaults
11+
# Optional: Change the apt source to Tsinghua mirror
12+
RUN sed -i 's#deb.debian.org/debian$#mirrors.tuna.tsinghua.edu.cn/debian#' /etc/apt/sources.list.d/debian.sources
1713

1814
RUN apt-get clean
1915
RUN apt-get update
@@ -25,6 +21,7 @@ RUN apt-get install -y \
2521
git \
2622
curl \
2723
htop \
24+
cron \
2825
libfreetype6-dev \
2926
libjpeg62-turbo-dev \
3027
zlib1g-dev \
@@ -46,21 +43,22 @@ RUN apt-get install -y \
4643

4744
COPY --from=composer:2 /usr/bin/composer /usr/local/bin/composer
4845

49-
RUN curl -fsSL https://deb.nodesource.com/setup_${NODE_VERSION} | sudo bash -
46+
RUN curl -fsSL https://deb.nodesource.com/setup_${NODE_VERSION} | bash -
5047
RUN apt-get install -y nodejs
5148

52-
RUN apt-get install -y nginx
49+
RUN apt-get install -y nginx && \
50+
rm /etc/nginx/sites-enabled/default
5351

5452
RUN yes | docker-php-ext-install mysqli && \
5553
docker-php-ext-configure gd --with-jpeg=/usr/include/ --with-freetype=/usr/include/ && \
56-
docker-php-ext-install gd zip pcntl bcmath mbstring exif && \
54+
docker-php-ext-install pdo_mysql gd zip pcntl bcmath mbstring exif && \
5755
docker-php-ext-enable opcache
5856

5957
RUN yes | pecl install xdebug && \
6058
docker-php-ext-enable xdebug
6159

60+
RUN mkdir -p /home/wwwlogs
6261

63-
USER ${USER_NAME}
64-
WORKDIR /var/www
62+
WORKDIR ${DOCUMENT_ROOT}
6563

66-
CMD ["php-fpm"]
64+
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]

bamboocms-php-docker/php/nginx-site.conf

Lines changed: 3 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -4,39 +4,20 @@ server {
44
server_name php.local;
55
root /home/wwwroot/bamboocms-php/public;
66

7-
add_header X-Frame-Options "SAMEORIGIN";
8-
add_header X-Content-Type-Options "nosniff";
9-
107
index index.php;
118
charset utf-8;
129

13-
error_log /home/wwwlogs/nginx-error-log.log;
10+
error_log /home/wwwlogs/nginx-error-log.log;
1411
access_log /home/wwwlogs/nginx-access.log;
1512

1613
location / {
1714
try_files $uri $uri/ /index.php?$query_string;
1815
}
1916

20-
location = /favicon.ico { access_log off; log_not_found off; }
21-
location = /robots.txt { access_log off; log_not_found off; }
22-
23-
error_page 404 /index.php;
24-
2517
location ~ \.php$ {
26-
try_files $uri =404;
27-
fastcgi_split_path_info ^(.+\.php)(/.+)$;
28-
fastcgi_pass php-fpm:9000;
29-
fastcgi_index index.php;
3018
include fastcgi_params;
19+
fastcgi_pass 127.0.0.1:9000;
20+
fastcgi_index index.php;
3121
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
32-
fastcgi_param PATH_INFO $fastcgi_path_info;
33-
34-
fastcgi_hide_header X-Powered-By;
35-
fastcgi_hide_header X-CF-Powered-By;
36-
fastcgi_hide_header X-Runtime;
37-
}
38-
39-
location ~ /\.(?!well-known).* {
40-
deny all;
4122
}
4223
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
[supervisord]
2+
logfile=/var/log/supervisor/supervisord.log
3+
pidfile=/run/supervisord.pid
4+
nodaemon=true
5+
6+
[program:php-fpm]
7+
command=php-fpm
8+
9+
[program:nginx]
10+
command=nginx -g "daemon off;"
11+
12+
[program:cron]
13+
command=cron -f
14+
autostart=true

0 commit comments

Comments
 (0)