前言 :目前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

  • 有疑问可以评论留言。