Docker 与持续集成 / 持续部署(CI/CD)的集成(二)

五、代码示例与解释

(一)Dockerfile 示例

以下是一个简单的基于 Python Flask 应用的 Dockerfile 示例:

 

# 使用Python 3.10-slim作为基础镜像

FROM python:3.10-slim

# 设置工作目录

WORKDIR /app

# 复制项目文件到容器内的工作目录

COPY. /app

# 安装项目依赖

RUN pip install -r requirements.txt

# 暴露应用运行的端口

EXPOSE 5000

# 定义容器启动时执行的命令

CMD ["python", "app.py"]

  • FROM:这是 Dockerfile 的第一条指令,用于指定基础镜像。python:3.10-slim是官方提供的 Python 3.10 版本的精简镜像,它包含了运行 Python 应用所需的基本环境,基于这个镜像可以大大减少我们构建镜像的工作量 。
  • WORKDIR:设置容器内的工作目录为/app,后续的指令如COPY、RUN等如果没有指定绝对路径,都会在这个工作目录下执行。这样可以保证文件操作的一致性和可预测性 。
  • COPY:将当前目录(即构建上下文)下的所有文件和目录复制到容器内的/app目录中。第一个.表示当前目录,第二个/app表示目标路径 。
  • RUN:在镜像构建过程中执行命令。这里使用pip install -r requirements.txt来安装项目所需的依赖项,requirements.txt文件中列出了项目的所有 Python 依赖包 。
  • EXPOSE:声明容器运行时会监听 5000 端口,这只是一个声明,并不会自动将容器端口映射到宿主机,主要用于提示用户和其他工具(如 Kubernetes)该容器的服务端口 。
  • CMD:指定容器启动时要执行的命令。这里是运行python app.py来启动 Flask 应用,app.py是 Flask 应用的主程序文件 。如果在运行容器时指定了其他命令,将会覆盖CMD中的命令。

(二)CI/CD 脚本示例

假设我们使用 GitLab CI/CD 来实现自动化构建和部署,以下是一个简单的.gitlab-ci.yml文件示例:

 

stages:

- build

- test

- deploy

build:

stage: build

script:

- docker build -t my_flask_app:latest.

- docker tag my_flask_app:latest registry.example.com/my_flask_app:latest

- docker push registry.example.com/my_flask_app:latest

test:

stage: test

script:

- docker run -it --rm registry.example.com/my_flask_app:la

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

计算机毕设定制辅导-无忧学长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值