Tôi đang cố gắng liên kết 2 vùng chứa riêng biệt:
Vấn đề là các tập lệnh php không hoạt động. Có lẽ cấu hình php-fpm không chính xác. Đây là mã nguồn, trong kho của tôi . Đây là tệp docker-compose.yml
:
nginx:
build: .
ports:
- "80:80"
- "443:443"
volumes:
- ./:/var/www/test/
links:
- fpm
fpm:
image: php:fpm
ports:
- "9000:9000"
và Dockerfile
cái mà tôi đã sử dụng để xây dựng hình ảnh tùy chỉnh dựa trên hình ảnh nginx:
FROM nginx
# Change Nginx config here...
RUN rm /etc/nginx/conf.d/default.conf
ADD ./default.conf /etc/nginx/conf.d/
Cuối cùng, đây là cấu hình máy chủ ảo Nginx tùy chỉnh của tôi:
server {
listen 80;
server_name localhost;
root /var/www/test;
error_log /var/log/nginx/localhost.error.log;
access_log /var/log/nginx/localhost.access.log;
location / {
# try to serve file directly, fallback to app.php
try_files $uri /index.php$is_args$args;
}
location ~ ^/.+\.php(/|$) {
fastcgi_pass 192.168.59.103:9000;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS off;
}
}
Ai có thể giúp tôi định cấu hình các vùng chứa này một cách chính xác để thực thi các tập lệnh php không?
PS Tôi chạy các vùng chứa thông qua docker-composer như thế này:
docker-compose up
từ thư mục gốc của dự án.
docker exec
vào vùng chứa đang chạy và ping fpm không?
Nginx
và PHP-FPM
cùng với Vagrant và Ansible. Kiểm tra repo github.com/bocharsky-bw/vagrant-ansible-docker của tôi nếu bạn muốn.