如何安装NGINX和PHP以使用DOCKER提供文件

时间:2018-12-07 19:47:26

标签: docker dockerfile

我有这些要求

 1.使用Ubuntu 16.04作为基本映像
 2.容器应具有NginX 1.14.x和PHP 7.x
 3.创建一个名为index.html的文件,其中包含一些虚拟内容
 4.将此文件添加到以下工作目录中:/ opt / projects
 5.使该文件可在http://127.0.0.1:8080上访问
 6.使有关PHP的配置()的信息可在http://127.0.0.1:8080/info.php上访问
 7. NginX应该写必要的访问和错误日​​志
 8.在主机的/ var / log / nginx

上安装NginX的访问和错误日​​志

我在互联网上尝试了许多方法,但没有任何工作对我有用。 如何编写此Dockerfile

我已经尝试过了

FROM ubuntu:16.04
RUN apt-get update
RUN apt-get -y upgrade
RUN apt-get install php7.0-fpm php7.0-mysql php7.0-gd php7.0-cli nginx -y
EXPOSE 80
VOLUME ["/var/www/html"]
CMD ["/bin/bash", "/start.sh"]

1 个答案:

答案 0 :(得分:0)

创建一个名为my-app的新目录。

创建具有以下内容的docker-compose.yaml文件:

version: '2'
services:
 web:
    image: nginx:latest
    ports:
        - 8080:8080
    volumes:
        - ./my-app:/my-app
        - ./site.conf:/etc/nginx conf.d/site.conf
        - /log/nginx/:/var/log/nginx/
    links:
        - php
 php:
    image: php:7-fpm
    volumes:
        - ./my-app:/my-app

使用以下命令创建一个nginx配置文件site.config

server {
    index index.php index.html;
    server_name php-docker.local;
    error_log  /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;
    root /my-app;

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass php:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
}

使用以下方法创建index.php文件:

<?php
echo phpinfo();

运行

docker-compose up -d

打开浏览器以

localhost:8080

只需将DirectoryFile的名称更改为您需要的名称即可