在您的项目目录中创建一个名为docker-compose.yml
的文件,并将以下内容复制粘贴到文件中:
version: '3.9'
services:
web:
image: php:8.0-fpm
volumes:
- ./my-web-app:/var/www/html
ports:
- "80:80"
depends_on:
- db
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: my-secret-pw
MYSQL_DATABASE: my_web_app_db
MYSQL_USER: my_web_app_user
MYSQL_PASSWORD: my-secret-password
ports:
- "3306:3306"
volumes:
- db-data:/var/lib/mysql
volumes:
db-data:
该文件定义了两个服务:一个名为web
的PHP 8.0 FPM服务和一个名为db
的MySQL 8.0服务。 web
服务使用php:8.0-fpm
镜像并将./my-web-app
目录挂载到容器的/var/www/html
目录。它还将容器的80端口映射到主机的80端口。db
服务使用mysql:8.0
镜像,设置了MySQL的root密码和应用程序数据库的用户名密码,并将容器的3306端口映射到主机的3306端口。此外,我们将db-data
命名的卷用于存储MySQL数据。
在与docker-compose.yml
文件相同的目录中创建一个名为my-web-app
的目录,并在该目录中创建一个名为index.php
的文件,其中包含Web应用程序的代码,例如:
<?php
$dbhost = "db";
$dbuser = "my_web_app_user";
$dbpass = "my-secret-password";
$dbname = "my_web_app_db";
$conn = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully to MySQL database!";
?>
此PHP代码将连接到MySQL数据库并输出“Connected successfully to MySQL database!”消息。
使用以下命令启动Web应用程序容器:
docker-compose up -d
该命令将在后台启动两个服务,并将容器日志输出到终端。
在Web浏览器中输入服务器的IP地址或域名,例如:http://your_server_ip_address
,以查看Web应用程序的运行状态。
如果一切正常,您应该可以看到“Connected successfully to MySQL database!”消息。要停止并删除容器和数据卷,请使用以下命令:
docker-compose down --volumes
请注意,这只是一个基本示例,您可以根据需要进行修改和扩展。例如,您可以在docker-compose.yml
文件中添加其他服务,如缓存服务或Web服务器。您还可以在web
服务中添加其他PHP扩展程序。
暂无评论内容