怎么用lls做网站东莞饰品网站建设
文章目录
- 摘要
 - 项目结构
 - 项目开发
 - 项目上线
 - 参考文章
 

摘要
本文介绍了如何在Windows 10系统上使用PyCharm专业版2024.1,通过Docker容器在阿里云CentOS 7.9服务器上进行Python项目的开发和生产部署。文章详细阐述了项目结构的搭建、PyCharm的使用技巧、以及如何将开发项目部署为生产镜像,并利用Pycharm和容器卷挂载技术实现项目结构和内容在本地、远程服务器、Docker容器内部的一致性。文章有助于读者更好地理解和实践在Windows系统上使用PyCharm连接Docker容器进行Python项目开发与部署。
项目结构
假设你的项目名称为 flask_project,项目结构如下:
flask_project/
│
├── DockerfileBase       # 基础 Dockerfile,用于构建开发环境
├── DockerfileProd       # 生产环境 Dockerfile,基于基础镜像
├── app/
│   ├── __init__.py
│   ├── app.py            # Flask 应用的主文件
├── requirements.txt      # 项目依赖文件
└── README.md             # 项目说明文件
 
-  
DockerfileBase:
在项目的根目录下创建一个名为
DockerfileBase的文件,并写入以下内容:# 使用官方 Python 3.8 镜像 FROM python:3.8# 安装设置ssh服务 RUN apt-get update && \apt-get install -y openssh-server openssh-client && \echo root:abcdef123456 | chpasswd && \echo "PermitRootLogin yes" >> /etc/ssh/sshd_config # 创建并设置权限 RUN mkdir -p /run/sshd && \chown root:root /run/sshd && \chmod 755 /run/sshd# 安装必要的软件包 RUN apt-get install -y sudo vim# 设置系统时区为上海 RUN rm -f /etc/localtime RUN ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' > /etc/timezone# 暴露 SSH 端口 EXPOSE 22# 启动 SSH 服务 CMD ["/usr/sbin/sshd", "-D"] -  
DockerfileProd:
在项目的根目录下创建一个名为
DockerfileProd的文件,并写入以下内容:# 使用自己构建 Python 3.8 镜像作为基础镜像 FROM python-3.8-base:1.0# 设置容器内的工作目录为 /opt/project/flask_project WORKDIR /opt/project/flask_project# 将当前目录下的所有文件复制到容器的工作目录 COPY . /opt/project/flask_project# 安装 Flask 应用所需的依赖 RUN pip install --no-cache-dir -r requirements.txt# 暴露 Flask 应用运行的端口 5000 EXPOSE 5000# 定义容器启动时执行的命令来运行 Flask 应用 CMD ["python", "./app.py"] -  
app/app.py:
在
app目录下创建一个名为app.py的文件,并写入以下 Flask 应用代码:from flask import Flaskapp = Flask(__name__)@app.route('/') def hello_world():return 'Hello, World!'if __name__ == '__main__':app.run(host='0.0.0.0', port=5000) -  
app/requirements.txt:
在
app目录下创建一个名为requirements.txt的文件,并写入以下内容:Flask==3.0.3 -  
README.md:
在
README.md写入项目相关的说明:基于PyCharm在Windows系统上远程连接Linux服务器中Docker容器进行Python项目开发与部署 
项目开发
-  
构建基础镜像
首先,你需要创建一个基础的 Docker 镜像,这个镜像将包含你开发环境中所需的所有基本组件。- 登录远程服务器
 - 新建
DockerfileBase文件mkdir /opt/project/flask_project touch DockerfileBase - 写入以下内容到 
DockerfileBase# 使用官方 Python 3.8 镜像 FROM python:3.8# 安装设置ssh服务 RUN apt-get update && \apt-get install -y openssh-server openssh-client && \echo root:abcdef123456 | chpasswd && \echo "PermitRootLogin yes" >> /etc/ssh/sshd_config # 创建并设置权限 RUN mkdir -p /run/sshd && \chown root:root /run/sshd && \chmod 755 /run/sshd# 安装必要的软件包 RUN apt-get install -y sudo vim# 设置系统时区为上海 RUN rm -f /etc/localtime RUN ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' > /etc/timezone# 暴露 SSH 端口 EXPOSE 22# 启动 SSH 服务 CMD ["/usr/sbin/sshd", "-D"] - 构建基础镜像
docker build -f DockerfileBase -t python-3.8-base:1.0 . 
 -  
运行开发环境容器
使用基础镜像运行开发环境容器,并映射必要的端口。docker run -d \--name python-dev \-p 5000:5000 \-p 10022:22 \-v /opt/project/flask_project:/opt/project/flask_project \python-3.8-base:1.0 -  
Pycharm新建本地项目
在 PyCharm 中创建一个新的项目:- 点击 “File”(文件)> “New Project”(新建项目)
 - 项目名称:flask_project
 - 项目位置:E:\opt\project
 - Python 虚拟环境位置:E:\opt\project\flask_project\.venv

 - 注意:Python虚拟环境不重要,下面会修改Python解析器为远程服务器Docker容器解释器。
 
 -  
Pycharm远程连接开发容器
- 配置远程解释器 
-  
填写配置信息如下
配置项 值 Host(主机地址) your-service-ip Port(端口) 10022 Username(用户名) root Password(密码) abcdef123456 Sync Folder(文件同步目录) /opt/project/flask_project  -  
配置过程截图如下
 
 
 -  
 - 修改项目同步配置
移除E:\opt\project\flask_project\.venv向服务器同步


 
 - 配置远程解释器 
 -  
安装项目依赖
-  
登录远程容器服务器
Pycharm中点击Terminal, 出现终端后点击向下三角, 出现上面配置的远程解释器所在服务器信息, 选择进入服务器。

 -  
创建
requirements.txtcd /opt/project/flask_project touch requirements.txt -  
写入以下内容
Flask==3.0.3 -  
安装项目依赖
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple 
 -  
 -  
创建应用
在项目中创建Flask应用目录app/和文件app.py-  
项目结构如下:
flask_project/ │ ├── DockerfileBase # 基础 Dockerfile,用于构建开发环境 ├── app/ │ ├── __init__.py │ ├── app.py # Flask 应用的主文件 └── requirements.txt # 项目依赖文件 -  
文件内容
写入以下内容到app/app.py中from flask import Flaskapp = Flask(__name__)@app.route('/') def hello_world():return 'Hello, World!'if __name__ == '__main__':app.run(host='0.0.0.0', port=5000)如下图所示

 -  
运行应用
在 PyCharm 中右键运行 app.py 文件。

 
 -  
 -  
访问应用
- 访问 
http://<server-ip>:5000来查看 Flask 应用的输出。

 
 - 访问 
 
项目上线
-  
构建生产镜像
首先,你需要创建一个生产的 Docker 镜像,这个镜像将包含你开发环境中所需的所有基本组件。- 登录远程服务器
 - 新建
DockerfileProd文件mkdir /opt/project/flask_project touch DockerfileProd - 写入以下内容到 
DockerfileProd# 使用自己构建 Python 3.8 镜像作为基础镜像 FROM python-3.8-base:1.0# 设置容器内的工作目录为 /opt/project/flask_project WORKDIR /opt/project/flask_project# 将当前目录下的所有文件复制到容器的工作目录 COPY . /opt/project/flask_project# 安装 Flask 应用所需的依赖 RUN pip install --no-cache-dir -r requirements.txt# 暴露 Flask 应用运行的端口 5000 EXPOSE 5000# 定义容器启动时执行的命令来运行 Flask 应用 CMD ["python", "./app.py"] - 构建基础镜像
docker build -f DockerfileProd -t flask-project-python-3.8:1.0 . 
 -  
运行容器
使用生产镜像运行生产环境容器,并映射必要的端口。docker run -d \--name flask-project-prod \-p 10000:5000 \flask-project-python-3.8:1.0 -  
访问应用
访问http://<server-ip>:10000来查看 Flask 应用的输出。 -  
重启、停止和删除容器:
当你希望重启停止并删除容器时,可以使用以下命令:
# 重启容器 docker restart flask-prod-prod # 停止容器 docker stop flask-prod-prod # 删除容器 docker rm flask-project-prod 
参考文章
Dockerfile 简介与 镜像构建指南
 pycharm 远程连接docker容器调试程序
 pycharm如何连接远程服务器的docker容器进行运行和调试代码(一)
 PyCahrm部署Docker镜像解释器
 Flask+Gunicorn+Docker最佳实践
 Docker+Flask+Gunicorn上线项目
