1. 创建阿里云镜像仓库



2. 编写推送脚本push.sh
#!/bin/bash
# Ensure the script exits if any command failsset -e
# Define variables for the registry and imageALIYUN_REGISTRY="crpi-aon3rlrrtizhy79e.cn-hangzhou.personal.cr.aliyuncs.com/flycode/flycode"NAMESPACE="flycode"IMAGE_NAME="mcp-server-csdn"IMAGE_TAG="1.0"
# 读取本地配置文件if [ -f ".local-config" ]; then source .local-configelse echo ".local-config 文件不存在,请创建并填写 ALIYUN_USERNAME 和 ALIYUN_PASSWORD" exit 1fi
# Login to Aliyun Docker Registryecho "Logging into Aliyun Docker Registry..."docker login --username="${ALIYUN_USERNAME}" --password="${ALIYUN_PASSWORD}" $ALIYUN_REGISTRY
# Tag the Docker imageecho "Tagging the Docker image..."docker tag ${NAMESPACE}/${IMAGE_NAME}:${IMAGE_TAG} ${ALIYUN_REGISTRY}/${NAMESPACE}/${IMAGE_NAME}:${IMAGE_TAG}
# Push the Docker image to Aliyunecho "Pushing the Docker image to Aliyun..."docker push ${ALIYUN_REGISTRY}/${NAMESPACE}/${IMAGE_NAME}:${IMAGE_TAG}
echo "Docker image pushed successfully! "
echo "检出地址:docker pull ${ALIYUN_REGISTRY}/${NAMESPACE}/${IMAGE_NAME}:${IMAGE_TAG}"echo "标签设置:docker tag ${ALIYUN_REGISTRY}/${NAMESPACE}/${IMAGE_NAME}:${IMAGE_TAG} ${NAMESPACE}/${IMAGE_NAME}:${IMAGE_TAG}"
# Logout from Aliyun Docker Registryecho "Logging out from Aliyun Docker Registry..."docker logout $ALIYUN_REGISTRY其中登录的账号密码写在当前同级目录.local-config中
ALIYUN_USERNAME=xxxxALIYUN_PASSWORD=xxxxx3. 编写Dockerfile
# 基础镜像,可以先执行 docker pull openjdk:17-jdk-slimFROM openjdk:17-jdk-slim
# 作者MAINTAINER flycode
# 配置ENV PARAMS=""
# 时区ENV TZ=PRCRUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 添加应用ADD target/mcp-server-csdn-app.jar /mcp-server-csdn-app.jar
ENTRYPOINT ["sh","-c","java -jar $JAVA_OPTS /mcp-server-csdn-app.jar $PARAMS"]4. 编写构建运行脚本build.sh
# 普通镜像构建,随系统版本构建 amd/arm ./build.shdocker build -t flycode/mcp-server-csdn-app:1.0 -f ./Dockerfile .5. Linux环境运行build脚本
需要安装Docker环境

6. 运行push脚本

返回了对应的地址
检出地址:docker pull crpi-aon3rlrrtizhy79e.cn-hangzhou.personal.cr.aliyuncs.com/flycode/ai-mcp-server-csdn:1.0 标签设置:docker tag crpi-aon3rlrrtizhy79e.cn-hangzhou.personal.cr.aliyuncs.com/flycode/ai-mcp-server-csdn:1.0 flycode/ai-mcp-server-csdn:1.0
7. 查看镜像
可以看到阿里云镜像多了我们自定义的ai-mcp-server-csdn,推送完成

8. 编写docker-compose脚本
按照自己的需求编写启动项目脚本
version: '3.8'services: ai-mcp-knowledge-app: image: crpi-aon3rlrrtizhy79e.cn-hangzhou.personal.cr.aliyuncs.com/flycode/ai-mcp-knowledge-app:1.0 container_name: ai-mcp-knowledge-app restart: always ports: - "8090:8090" volumes: - ./log:/data/log - ./mcp/config:/mnt/d/myprojects/Konwledge/ai-mcp-knowledge/ai-mcp-knowledge/ai-mcp-knowledge-app/docs/tags/mcp/config - ./mcp/jar:/mnt/d/myprojects/Konwledge/ai-mcp-knowledge/ai-mcp-knowledge/ai-mcp-knowledge-app/docs/tags/mcp/jar environment: - TZ=PRC - SERVER_PORT=8090 - SPRING_DATASOURCE_USERNAME=postgres - SPRING_DATASOURCE_PASSWORD=postgres - SPRING_DATASOURCE_URL=jdbc:postgresql://172.26.37.0:5432/ai-rag-knowledge - SPRING_DATASOURCE_DRIVER_CLASS_NAME=org.postgresql.Driver - SPRING_AI_OLLAMA_BASE_URL=http://172.26.37.0:11434 - SPRING_AI_OLLAMA_EMBEDDING_OPTIONS_NUM_BATCH=512 - SPRING_AI_OLLAMA_MODEL=nomic-embed-text - SPRING_AI_ZHIPUAI_BASE_URL=https://open.bigmodel.cn/api/paas/ - SPRING_AI_ZHIPUAI_API_KEY=a9445ac34f0841a899b13699b19c7fb3.NCGDN8fQmcWmMoTd - SPRING_AI_OPENAI_EMBEDDING_MODEL=text-embedding-ada-002 - SPRING_AI_RAG_EMBED=nomic-embed-text - SPRING_AI_MCP_CLIENT_STDIO_SERVERS_CONFIGURATION=file:/mnt/d/myprojects/Konwledge/ai-mcp-knowledge/ai-mcp-knowledge/ai-mcp-knowledge-app/docs/tags/mcp/config/mcp-servers-config.json - REDIS_SDK_CONFIG_HOST=redis - REDIS_SDK_CONFIG_PORT=6379 logging: driver: "json-file" options: max-size: "10m" max-file: "3" networks: - my-network
networks: my-network: driver: bridge运行脚本
docker-compose -f docker-compose-app up -d
评论