t
This commit is contained in:
@ -9,124 +9,124 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: 检出代码
|
- name: 检出代码
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: 基本测试
|
- name: 基本测试
|
||||||
run: |
|
run: |
|
||||||
echo "🚀 开始测试..."
|
echo "🚀 开始测试..."
|
||||||
echo "📁 当前目录: $(pwd)"
|
echo "📁 当前目录: $(pwd)"
|
||||||
echo "📋 文件列表:"
|
echo "📋 文件列表:"
|
||||||
ls -la
|
ls -la
|
||||||
echo "✅ 测试完成!"
|
echo "✅ 测试完成!"
|
||||||
|
|
||||||
- name: 配置Docker不安全registry
|
- name: 配置Docker不安全registry
|
||||||
run: |
|
run: |
|
||||||
echo "🔧 配置Docker允许不安全的registry..."
|
echo "🔧 配置Docker允许不安全的registry..."
|
||||||
|
|
||||||
# 获取registry地址
|
# 获取registry地址
|
||||||
REGISTRY_HOST=$(echo "${{ gitea.server_url }}" | sed 's|https\?://||')
|
REGISTRY_HOST=$(echo "${{ gitea.server_url }}" | sed 's|https\?://||')
|
||||||
echo "📡 Registry地址: $REGISTRY_HOST"
|
echo "📡 Registry地址: $REGISTRY_HOST"
|
||||||
|
|
||||||
# 停止Docker服务
|
# 停止Docker服务
|
||||||
sudo systemctl stop docker || sudo service docker stop || true
|
sudo systemctl stop docker || sudo service docker stop || true
|
||||||
|
|
||||||
# 配置daemon.json
|
# 配置daemon.json
|
||||||
sudo mkdir -p /etc/docker
|
sudo mkdir -p /etc/docker
|
||||||
sudo tee /etc/docker/daemon.json <<EOF
|
sudo tee /etc/docker/daemon.json <<EOF
|
||||||
{
|
{
|
||||||
"insecure-registries": ["$REGISTRY_HOST"],
|
"insecure-registries": ["$REGISTRY_HOST"],
|
||||||
"registry-mirrors": []
|
"registry-mirrors": []
|
||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
# 启动Docker服务
|
# 启动Docker服务
|
||||||
sudo systemctl start docker || sudo service docker start || true
|
sudo systemctl start docker || sudo service docker start || true
|
||||||
|
|
||||||
# 等待Docker启动
|
# 等待Docker启动
|
||||||
sleep 10
|
sleep 10
|
||||||
|
|
||||||
# 验证Docker状态
|
# 验证Docker状态
|
||||||
docker info | grep -i insecure || true
|
docker info | grep -i insecure || true
|
||||||
|
|
||||||
echo "✅ Docker配置完成!"
|
echo "✅ Docker配置完成!"
|
||||||
|
|
||||||
- name: 登录到Gitea Container Registry
|
- name: 构造Docker镜像
|
||||||
run: |
|
run: |
|
||||||
echo "🔐 登录到Gitea Container Registry..."
|
echo "🐳 构造Node.js Hello World应用镜像..."
|
||||||
|
|
||||||
# 获取registry地址
|
# 设置镜像标签
|
||||||
REGISTRY_HOST=$(echo "${{ gitea.server_url }}" | sed 's|https\?://||')
|
REGISTRY_HOST=$(echo "${{ gitea.server_url }}" | sed 's|https\?://||')
|
||||||
cat /etc/docker/daemon.json
|
IMAGE_NAME="$REGISTRY_HOST/${{ gitea.repository_owner }}/hello-world-app"
|
||||||
echo "📡 Registry地址: $REGISTRY_HOST"
|
IMAGE_TAG="latest"
|
||||||
echo "👤 用户名: ${{ gitea.actor }}"
|
COMMIT_SHA="${{ gitea.sha }}"
|
||||||
|
|
||||||
# 使用HTTP协议登录
|
echo "📦 镜像名称: $IMAGE_NAME"
|
||||||
echo "${{ gitea.token }}" | docker login $REGISTRY_HOST -u "${{ gitea.actor }}" --password-stdin
|
echo "🏷️ 镜像标签: $IMAGE_TAG"
|
||||||
|
echo "📋 提交SHA: $COMMIT_SHA"
|
||||||
|
|
||||||
echo "✅ 登录成功!"
|
# 构造镜像
|
||||||
|
docker build -t "$IMAGE_NAME:$IMAGE_TAG" -t "$IMAGE_NAME:$COMMIT_SHA" .
|
||||||
|
|
||||||
- name: 构造Docker镜像
|
echo "✅ Node.js Hello World镜像构造完成!"
|
||||||
run: |
|
|
||||||
echo "🐳 构造Node.js Hello World应用镜像..."
|
|
||||||
|
|
||||||
# 设置镜像标签
|
- name: 登录到Gitea Container Registry
|
||||||
REGISTRY_HOST=$(echo "${{ gitea.server_url }}" | sed 's|https\?://||')
|
run: |
|
||||||
IMAGE_NAME="$REGISTRY_HOST/${{ gitea.repository_owner }}/hello-world-app"
|
echo "🔐 登录到Gitea Container Registry..."
|
||||||
IMAGE_TAG="latest"
|
|
||||||
COMMIT_SHA="${{ gitea.sha }}"
|
|
||||||
|
|
||||||
echo "📦 镜像名称: $IMAGE_NAME"
|
# 获取registry地址
|
||||||
echo "🏷️ 镜像标签: $IMAGE_TAG"
|
REGISTRY_HOST=$(echo "${{ gitea.server_url }}" | sed 's|https\?://||')
|
||||||
echo "📋 提交SHA: $COMMIT_SHA"
|
cat /etc/docker/daemon.json
|
||||||
|
echo "📡 Registry地址: $REGISTRY_HOST"
|
||||||
|
echo "👤 用户名: ${{ gitea.actor }}"
|
||||||
|
|
||||||
# 构造镜像
|
# 使用HTTP协议登录
|
||||||
docker build -t "$IMAGE_NAME:$IMAGE_TAG" -t "$IMAGE_NAME:$COMMIT_SHA" .
|
echo "${{ gitea.token }}" | docker login $REGISTRY_HOST -u "${{ gitea.actor }}" --password-stdin
|
||||||
|
|
||||||
echo "✅ Node.js Hello World镜像构造完成!"
|
echo "✅ 登录成功!"
|
||||||
|
|
||||||
- name: 推送Docker镜像
|
- name: 推送Docker镜像
|
||||||
run: |
|
run: |
|
||||||
echo "🚀 推送Docker镜像到Gitea registry..."
|
echo "🚀 推送Docker镜像到Gitea registry..."
|
||||||
|
|
||||||
# 设置镜像标签
|
# 设置镜像标签
|
||||||
REGISTRY_HOST=$(echo "${{ gitea.server_url }}" | sed 's|https\?://||')
|
REGISTRY_HOST=$(echo "${{ gitea.server_url }}" | sed 's|https\?://||')
|
||||||
IMAGE_NAME="$REGISTRY_HOST/${{ gitea.repository_owner }}/hello-world-app"
|
IMAGE_NAME="$REGISTRY_HOST/${{ gitea.repository_owner }}/hello-world-app"
|
||||||
IMAGE_TAG="latest"
|
IMAGE_TAG="latest"
|
||||||
COMMIT_SHA="${{ gitea.sha }}"
|
COMMIT_SHA="${{ gitea.sha }}"
|
||||||
|
|
||||||
# 推送镜像
|
# 推送镜像
|
||||||
docker push "$IMAGE_NAME:$IMAGE_TAG"
|
docker push "$IMAGE_NAME:$IMAGE_TAG"
|
||||||
docker push "$IMAGE_NAME:$COMMIT_SHA"
|
docker push "$IMAGE_NAME:$COMMIT_SHA"
|
||||||
|
|
||||||
echo "✅ Docker镜像推送完成!"
|
echo "✅ Docker镜像推送完成!"
|
||||||
echo "🎉 镜像已推送到: $IMAGE_NAME:$IMAGE_TAG"
|
echo "🎉 镜像已推送到: $IMAGE_NAME:$IMAGE_TAG"
|
||||||
echo "🎉 镜像已推送到: $IMAGE_NAME:$COMMIT_SHA"
|
echo "🎉 镜像已推送到: $IMAGE_NAME:$COMMIT_SHA"
|
||||||
|
|
||||||
- name: 测试镜像运行
|
- name: 测试镜像运行
|
||||||
run: |
|
run: |
|
||||||
echo "🧪 测试构造的镜像..."
|
echo "🧪 测试构造的镜像..."
|
||||||
|
|
||||||
REGISTRY_HOST=$(echo "${{ gitea.server_url }}" | sed 's|https\?://||')
|
REGISTRY_HOST=$(echo "${{ gitea.server_url }}" | sed 's|https\?://||')
|
||||||
IMAGE_NAME="$REGISTRY_HOST/${{ gitea.repository_owner }}/hello-world-app"
|
IMAGE_NAME="$REGISTRY_HOST/${{ gitea.repository_owner }}/hello-world-app"
|
||||||
IMAGE_TAG="latest"
|
IMAGE_TAG="latest"
|
||||||
|
|
||||||
# 运行镜像进行测试
|
# 运行镜像进行测试
|
||||||
docker run -d --name test-container -p 3000:3000 "$IMAGE_NAME:$IMAGE_TAG"
|
docker run -d --name test-container -p 3000:3000 "$IMAGE_NAME:$IMAGE_TAG"
|
||||||
|
|
||||||
# 等待容器启动
|
# 等待容器启动
|
||||||
sleep 5
|
sleep 5
|
||||||
|
|
||||||
# 测试健康检查
|
# 测试健康检查
|
||||||
echo "🔍 测试应用健康状态..."
|
echo "🔍 测试应用健康状态..."
|
||||||
curl -f http://localhost:3000/health || exit 1
|
curl -f http://localhost:3000/health || exit 1
|
||||||
|
|
||||||
# 测试主页
|
# 测试主页
|
||||||
echo "🔍 测试应用主页..."
|
echo "🔍 测试应用主页..."
|
||||||
curl -f http://localhost:3000/ || exit 1
|
curl -f http://localhost:3000/ || exit 1
|
||||||
|
|
||||||
# 停止并删除测试容器
|
# 停止并删除测试容器
|
||||||
docker stop test-container
|
docker stop test-container
|
||||||
docker rm test-container
|
docker rm test-container
|
||||||
|
|
||||||
echo "✅ 镜像测试完成!"
|
echo "✅ 镜像测试完成!"
|
||||||
|
|||||||
Reference in New Issue
Block a user