From 40735e9e8df6f2b2f4503da3b5113379fc7237f7 Mon Sep 17 00:00:00 2001 From: seahi Date: Tue, 16 Dec 2025 12:38:04 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=20Docker=20=E5=AE=B9?= =?UTF-8?q?=E5=99=A8=E5=8C=96=E9=83=A8=E7=BD=B2=E5=92=8C=20CI/CD=20?= =?UTF-8?q?=E7=AE=A1=E9=81=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 创建 Flask 应用程序,展示容器主机名和学生ID环境变量 - 配置 DockerFile 为 Python 环境并安装依赖 - 设置 Drone CI 管道自动构建并推送 Docker 映像到私有注册表 --- .drone.yml | 27 +++++++++++++++++++++++++++ Dockerfile | 5 +++++ app.py | 16 ++++++++++++++++ 3 files changed, 48 insertions(+) create mode 100644 .drone.yml create mode 100644 Dockerfile create mode 100644 app.py diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..0acb9b5 --- /dev/null +++ b/.drone.yml @@ -0,0 +1,27 @@ +kind: pipeline +type: docker +name: student-build + +steps: + - name: docker-build-push + image: plugins/docker + settings: + registry: harbor.seahi.me + repo: harbor.seahi.me/stu/whoami-for-swarm + tags: + - latest + - build-${DRONE_BUILD_NUMBER} + username: + from_secret: harbor_username + password: + from_secret: harbor_password + insecure: true + # 添加构建时间标签 + build_args: + - BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") + - VCS_REF=${DRONE_COMMIT_SHA:0:8} + +trigger: + branch: + - main + diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..3df7b78 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,5 @@ +FROM python:3.9-alpine +RUN pip install flask +COPY app.py /app.py +CMD ["python", "/app.py"] + diff --git a/app.py b/app.py new file mode 100644 index 0000000..53dfe29 --- /dev/null +++ b/app.py @@ -0,0 +1,16 @@ +from flask import Flask +import socket +import os + +app = Flask(__name__) + +@app.route('/') +def hello(): + return f""" + 容器主机名: {socket.gethostname()} + 学号服务: s{os.getenv('STUDENT_ID', '00')} + """ + +if __name__ == '__main__': + app.run(host='0.0.0.0', port=80) +