这次我们写一个spider app,需要python3.8+redis,两个容器一起组合使用
docker-compose可以把多个容器组合起来使用,并且容器之间实现互通
首先创建主要app的dockerfile
FROM python:3.8
WORKDIR /code
COPY requirements.txt ./
RUN pip install -r requirements.txt
#由于我们需要运行容器的时候,直接映射目录,所以不需要把app代码复制到容器中
#COPY . .
#-u参数python才会正常显示print打印日志
CMD ["python", "-u", "/code/main.py"]
接着创建docker-compose.yml配置脚本
version: '3.9'
#compose会自动为所有service搭建在同一个network,这样相互就可以通信了,还可以使用别名通信,比如connent(redis:6379)
services:
spider:
build: . # 指定 Dockerfile 所在路径
volumes:
#- /var/www/DiscountSpider:/code
- .:/code #当前目录映射到code(开发时使用)
environment:
- TZ=Asia/Shanghai
redis:
image: redis:5.0.13
environment:
- TZ=Asia/Shanghai
跑起来
最后从当前目录终端启动,Mac可以对着文件夹右键,服务,从当前文件夹创建终端,Debian之类的还是cd到所在目录
#debug时使用,可以直接看到打印的日志
docker-compose up
#生成环境需要后台启动,加-d
docker-compose up -d
修改
如果你修改了dockerfile,需要重新编译,则
docker-compose up --build
![](https://img.haomeiwen.com/i2042197/c7d02d1cd8474d33.png)
网友评论