在 Linux(Ubuntu/Fedora)和 MacOS 下的 Python 开发环境设置步骤
eval "$(/opt/homebrew/bin/brew shellenv)"
(echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >> ~/.zprofile
source ~/.zprofile
brew install python
if __name__ == "__main__":
greet("Bard")
在终端中,运行脚本: python main.py
如果脚本成功运行,将会输出以下内容:Hello, Bard!
myproject/
├── src/
│ └── example_pkg/
│ ├── __init__.py
│ └── core.py
├── tests/
├── test_main.py
├── test_units.py
├── setup.py
├── Dockerfile
└── README.md
其中:
具体的目录结构可以根据项目的实际情况进行调整。例如,对于简单的项目,可以将 src 和 tests 目录合并为一个目录。对于大型的项目,可以根据模块的功能划分多个子包。
以下是一个 Dockerfile 多阶段构建的示例:
#第一阶段:编译阶段
FROM python:3.10-buster AS builder
WORKDIR /app
COPY . .
RUN pip3 install -r requirements.txt
RUN python3 -m pip install build && python3 -m build
# 第二阶段:运行阶段
FROM python:3.10-slim-buster
WORKDIR /app
COPY --from=builder /app/main.py .
COPY --from=builder /app/dist/example_pkg-0.1.0.tar.gz /tmp/
RUN pip3 install /tmp/example_pkg-0.1.0.tar.gz && rm -f /tmp/example_pkg-0.1.0.tar.gz
CMD python3 main.py
这个 Dockerfile 使用了两阶段构建:
第一阶段:用于编译项目。该阶段使用了 python:3.10-buster 镜像作为基础镜像,并安装了编译依赖。然后,将项目的源代码复制到镜像中,并使用 pip3 进行编译。
第二阶段:用于运行项目。该阶段使用了 python:3.10-slim-buster 镜像作为基础镜像,并安装了运行依赖。然后,将第一阶段编译的产物复制到镜像中,并启动项目。
使用多阶段构建,可以将编译依赖和运行依赖分离,从而减少镜像的大小和体积。
GitHub Actions 的管理界面 https://github.com/scaffolding-design/python/actions
流水线配置文件位于 Python.git 仓库中 .github/workflows/pipeline.yaml 由四个阶段组成:
管道由以下事件触发:
管道使用以下环境变量:
如需在自己的账号运行这个Demo,只需要将 https://github.com/scaffolding-design/python.git 这个仓库Fork 到你自己的Github账号下,同时在
Settings -> Actions secrets and variables: 添加流水线需要定义的变量:
一起就绪后,就可以看到 DevOPS 实践/GitHub Actions CICD 一节所示,在这个工作流中,自动的完成C程序的编译,测试,打包容器镜像并推送到自定义的仓库,并完成K3S集群的初始化,将容器镜像部署到K3S集群中。
API 可以在本地通过 http://localhost:80/ 访问。确保服务器正在运行后进行请求。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有