前言
今天看到一个mjj分享的应用,用python实现的,并且提供了docker的部署。因此i记录一下将python写的服务端通过dockerfile的方式打包成镜像的方式。
方法
项目的原地址是https://github.com/vastsa/FileCodeBox
直接贴上dockerfile
FROM python:3.9.5
LABEL author="Lan"
LABEL email="vast@tom.com"
LABEL version="1.0"
COPY . /app
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' >/etc/timezone
WORKDIR /app
RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
EXPOSE 12345
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "12345"]
使用docker部署的方法为
docker build --file Dockerfile --tag filecodebox .
docker run -d -p 12345:12345 --name filecodebox filecodebox
浅浅分析一下dockerfile。
- 选择python3.9.5作为基础镜像。
- 将当前远啦拷贝到app目录
- 设置时区。(这个可以重点学习,因为我在使用国外的vps运行定时任务时经常出现失去不一致的问题。)
- 安装python所需要的包。
- 暴露端口。
- 使用uvicorn来运行应用。