我用这个来为PHP设置nginx:
nginx:
image: nginx:latest
ports:
- 8080:80
volumes:
- ./code:/code
- ./site.conf:/etc/nginx/conf.d/site.conf
links:
- php
php:
image: php:7-fpm
volumes:
- ./code:/code
但是Apache怎么样呢?我怎样在docker-composite. yml中设置Apache + PHP?
遵循此guide:
version: '2'
services:
php:
build: php
ports:
- "80:80"
- "443:443"
volumes:
- ./php/www:/var/www/html
错误:
ERROR: In file './docker-compose.yml' service 'version' doesn't have any configuration options. All top level keys in your docker-compose.yml must map to a dictionary of configuration options.
有什么想法吗?我在Xubuntu 16.04频道。
- 编辑:**
在设法将docker-compose升级到1.9之后,我尝试使用下面的文件:
version: '2'
services:
php:
build: php
expose:
- 9000
volumes:
- ./php/www:/var/www/html
apache2:
image: webdevops/apache:latest
args:
- PHP_SOCKET=php:9000
volumes:
- ./php/www:/var/www/html
ports:
- 80:80
- 443:443
links:
- php
错误:
$ sudo docker-compose up -d
Building php
ERROR: Cannot locate specified Dockerfile: Dockerfile
Docker 是如此痛苦!
有办法解决吗?
7条答案
按热度按时间p4rjhz4m1#
我会选择webdevops dockerized apache,因为它的配置很简单:
vcirk6k62#
由于上面的例子不起作用,这里有一个不同的方法:第一个月
使用以下命令启动服务器
iyfjxgzm3#
1.我们需要在当前路径中创建一个新的文件夹/php/www
1.在php文件夹下创建一个文件,保存为“Dockerfile”,其中包含以下内容,不带引号
“从php:5.6-apache运行停靠-php-下一个-安装mysqli”
1.把你的docker-compose.yml文件复制到你当前的文件夹,你的“php”文件夹里有。
1.在www文件夹(/php/www/index.php)下创建示例文件“index.php”
1.在命令提示符下运行docker-composite up -d
1.打开浏览器类型“localhost”,您可以看到示例文件结果。
注:上述步骤按照上述docker-compose.yml文件执行。
ccgok5k54#
您可以检查此问题。如果您使用build而不是image,则需要“Dockerfile”。Dockerfile将用作构建映像的配置文件。
你可能错过了指南中的部分,在那里你应该创建文件与名称“Dockerfile”内目录“php”.目录“php”必须在同一目录,其中你的“docker-compose.yml”.在“docker-compose.yml”你有这一行.
该行表示配置文件(默认情况下:“Dockerfile”)是在目录“php”里面。所以你应该创建目录“php”和文件“Dockerfile”里面。
这是来自your guide的“停靠文件”。
docker-compose.yml reference版本2
Dockerfile reference
oxcyiej75#
我发现了一种优雅的方式来动态配置端口和其他参数:在apache 2的配置文件中,您可以引用环境变量。
可以在Dockerfile或docker-compose.yml中设置变量
cnh2zyt36#
您可以使用不同的Dockerfiles设置目录,并在每个服务中声明:
efzxgjgh7#
我已经为PHP开发人员创建了一个PHP、APACHE、MYSQL和PHPMYADMIN的工作示例。如果你需要原始的老式工作风格,你会发现它很有用。请注意,我的网站使用端口8080,PHPMyAdmin使用端口8081。你可以根据自己的喜好更改这些端口。