在本节中,我们将创建一个Compose文件以使用单个命令启动我们的Python-docker和MySQL数据库。我们还将设置Compose文件以Python-docker-dev在调试模式下启动应用程序,以便我们可以将调试器连接到正在运行的进程。
Python-docker在IDE或文本编辑器中打开该目录并创建一个名为docker-compose.dev.yml。将以下命令复制并粘贴到文件中。
version: ‘3.8’
services:
web:
build:
context: .
ports:
– 5000:5000
volumes:
– ./:/app
MySQLdb:
image: MySQL
ports:
– 3306:3306
environment:
– MYSQL_ROOT_PASSWORD=p@SSw0Rd1
volumes:
– MySQL:/var/lib/mysql
– MySQL_config:/etc/mysql
volumes:
– MySQL:
– MySQL_config:
这个Compose文件非常方便,因为我们不必键入要传递给docker run命令的所有参数。我们可以使用Compose文件声明性地做到这一点。
我们公开端口5000,以便我们可以访问容器内的开发Web服务器。我们还将我们的本地源代码映射到正在运行的容器中,以在我们的文本编辑器中进行更改,并在容器中获取这些更改。
使用Compose文件的另一个非常酷的功能是我们将服务解析设置为使用服务名称。因此,我们现在可以在连接字符串中使用“MySQLdb”。我们使用“MySQLdb”的原因是因为这是我们在Compose文件中命名我们的MySQL服务的原因。
现在,要启动我们的应用程序并确认它运行正常,请运行以下命令:
$ docker-compose -f docker-compose.dev.yml up –build
我们传递–build标志,以便Docker编译我们的图像,然后启动容器。
现在让我们测试我们的API端点。打开一个新终端,然后使用curl命令向服务器发出GET请求:
$ curl http://localhost:5000/initdb
$ curl http://localhost:5000/widgets
您应该会收到以下回复:
[]
这是因为我们的数据库是空的。