Docker + nginx + slim
Docker + nginx + slim
我是 Docker 的新用户。我想做的是(在我的 Windows PC 上)设置 Docker 平台,该平台带有 nginx 服务器和该服务器上的 slim 框架,这样我就可以“托管”一个简单的“hello世界”页面。
我的问题是:我应该创建一个包含 Nginx 的容器并在该容器内安装 Slim 框架吗?
或者我应该创建两个不同的容器(一个用于 Nginx,一个用于 Slim)。如果是这样,那两者如何沟通?
不管怎么说,首先我想了解这个“构建”的“架构”,然后再了解如何去做。
提前致谢
你可以使用两个容器,使用docker-compose连接slim和nginx,像这样:
docker-compose.yaml
version: "3.8"
services:
php:
container_name: slim
build:
context: ./docker/php
ports:
- '9000:9000'
volumes:
- .:/var/www/slim_app
nginx:
container_name: nginx
image: nginx:stable-alpine
ports:
- '80:80'
volumes:
- .:/var/www/slim_app
- ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf
depends_on:
- php
./docker/php
中的 DOCKERFILE
FROM php:7.4-fpm
RUN docker-php-ext-install ALL_YOUR EXTENSIONS
WORKDIR /var/www/slim_app
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
Docker /docker/nginx/default.conf
中的 nginx
server {
listen 80;
index index.php;
server_name localhost;
root /var/www/slim_app/public;
location / {
try_files $uri /index.php$is_args$args;
}
location ~ ^/index\.php(/|$) {
fastcgi_pass php:9000;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
internal;
}
location ~ \.php$ {
return 404;
}
}
只执行容器
docker-compose up -d
前往 http://localhost/
我是 Docker 的新用户。我想做的是(在我的 Windows PC 上)设置 Docker 平台,该平台带有 nginx 服务器和该服务器上的 slim 框架,这样我就可以“托管”一个简单的“hello世界”页面。 我的问题是:我应该创建一个包含 Nginx 的容器并在该容器内安装 Slim 框架吗? 或者我应该创建两个不同的容器(一个用于 Nginx,一个用于 Slim)。如果是这样,那两者如何沟通?
不管怎么说,首先我想了解这个“构建”的“架构”,然后再了解如何去做。
提前致谢
你可以使用两个容器,使用docker-compose连接slim和nginx,像这样:
docker-compose.yaml
version: "3.8"
services:
php:
container_name: slim
build:
context: ./docker/php
ports:
- '9000:9000'
volumes:
- .:/var/www/slim_app
nginx:
container_name: nginx
image: nginx:stable-alpine
ports:
- '80:80'
volumes:
- .:/var/www/slim_app
- ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf
depends_on:
- php
./docker/php
FROM php:7.4-fpm
RUN docker-php-ext-install ALL_YOUR EXTENSIONS
WORKDIR /var/www/slim_app
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
Docker /docker/nginx/default.conf
server {
listen 80;
index index.php;
server_name localhost;
root /var/www/slim_app/public;
location / {
try_files $uri /index.php$is_args$args;
}
location ~ ^/index\.php(/|$) {
fastcgi_pass php:9000;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
internal;
}
location ~ \.php$ {
return 404;
}
}
只执行容器
docker-compose up -d
前往 http://localhost/