前言 :目前1Panel还不支持直接部署python环境应用。使用docker-compose可以快速在1Panel部署python应用。这边文章用一个最简单的flask应用来说明如何对python应用容器化。
首先在1Panel中创建一个静态网站。
进入网站目录
上传我们的python应用文件到网站的根目录
index
在网站根目录新建
Dockerfile
docker-compose.yml
文件文件目录应该如下
项目目录
├── Dockerfile
├── docker-compose.yml
└── app
├── main.py
└── requirements.txt
Dockerfile
内容示例
# 使用 Python 官方的 Docker 镜像作为基础镜像
FROM python:3.9-alpine
# 设置环境变量
ARG NAME
ENV NAME=${NAME}
# 设置工作目录
WORKDIR /app
# 复制应用代码到镜像中的 /app 目录
COPY ./app /app
# 安装应用依赖
RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --no-cache-dir -r requirements.txt
# 设置启动命令
CMD python app.py
docker-compose.yml
内容示例
version: '3'
services:
# 容器服务名称
flask-app:
# 容器名称
container_name: flask-app
build:
#在当前目录下寻找Dockerfile文件并构建镜像
context: .
dockerfile: Dockerfile
# 重启策略
restart: always
# 使用1Panel的网络方便容器间通信
networks:
- 1panel-network
# 挂载目录 本地化容器数据
# 这里挂载了本地当前目录的app目录到容器的/app目录
volumes:
- ./app:/app
# 环境变量 可以在Dockerfile中配置环境变量,应用中获取
environment:
- NAME="示例变量NAME"
# 端口映射 容器端口映射到主机端口
ports:
- "6066:6066"
networks:
1panel-network:
external: true
上面的示例中 使用了 1panel-networ
网络 方便我们使用容器名直接在容器中通信链接数据库。
配置好后可以进入终端界面cd到你网站的根目录。
使用docker-compose up -d 创建容器。
使用域名访问就在网站的反向代理处反向代理你的容器端口。
127.0.0.1:port
有疑问可以评论留言。
参与讨论