优化镜像打包

This commit is contained in:
Wenjie Zhang 2025-05-09 15:00:08 +08:00
parent f0a77423a8
commit 1fc6e704f0
5 changed files with 41 additions and 32 deletions

View File

@ -3,6 +3,7 @@ services:
build:
context: .
dockerfile: docker/api.Dockerfile
image: api:0.1.0
container_name: api-dev
working_dir: /app
volumes:
@ -30,6 +31,7 @@ services:
context: .
dockerfile: docker/web.Dockerfile
target: development
image: web:0.1.0
container_name: web-dev
volumes:
- ./web:/app

View File

@ -0,0 +1,39 @@
#!/bin/bash
# 创建输出目录
OUTPUT_DIR="docker_images_backup"
mkdir -p $OUTPUT_DIR
# 定义输出文件名
OUTPUT_FILE="$OUTPUT_DIR/docker_images_$(date +%Y%m%d).tar"
echo "开始导出 Docker 镜像到 $OUTPUT_FILE..."
# 从各个文件中提取的基础镜像列表
IMAGES=(
"python:3.12"
"ghcr.io/astral-sh/uv:0.7.2"
"node:latest"
"nginx:alpine"
"neo4j:5.26"
"quay.io/coreos/etcd:v3.5.5"
"minio/minio:RELEASE.2023-03-20T20-16-18Z"
"milvusdb/milvus:v2.5.6"
)
# 确保所有镜像都已下载
for IMAGE in "${IMAGES[@]}"; do
echo "正在拉取镜像: $IMAGE"
docker pull $IMAGE
done
# 保存所有镜像到单个 tar 文件
echo "正在保存镜像到 tar 文件..."
docker save ${IMAGES[@]} -o $OUTPUT_FILE
# 计算文件大小
FILE_SIZE=$(du -h $OUTPUT_FILE | cut -f1)
echo "完成!"
echo "所有 Docker 镜像已保存到: $OUTPUT_FILE"
echo "文件大小: $FILE_SIZE"

View File

@ -1,22 +0,0 @@
#!/bin/bash
# Function to stop the services
stop_services() {
echo "Stopping services..."
pkill -f "npm run server"
pkill -f "uvicorn src.main:app --host 0.0.0.0 --port 5000 --reload"
exit
}
# Trap signals to stop services
trap stop_services SIGINT SIGTERM
# Start the server
uvicorn src.main:app --host 0.0.0.0 --port 5000 --reload &
# Start the frontend service
cd web
npm run server &
# Wait for all background jobs to finish
wait

View File

@ -1,10 +0,0 @@
#!/bin/bash
# 检查是否提供了命令行参数
if [ $# -eq 0 ]; then
echo "请提供命令参数例如up -d 或 down"
exit 1
fi
# 将所有命令行参数传递给 docker compose 命令
docker compose -f docker/docker-compose.dev.yml --env-file src/.env "$@"