微信扫码
添加专属顾问
我要投稿
主要是web和api镜像打包。
# Variables
DOCKER_REGISTRY=langgenius
WEB_IMAGE=$(DOCKER_REGISTRY)/dify-web
API_IMAGE=$(DOCKER_REGISTRY)/dify-api
VERSION=latest
# Build Docker images
build-web:
@echo "Building web Docker image: $(WEB_IMAGE):$(VERSION)..."
docker build -t $(WEB_IMAGE):$(VERSION) ./web
@echo "Web Docker image built successfully: $(WEB_IMAGE):$(VERSION)"
build-api:
@echo "Building API Docker image: $(API_IMAGE):$(VERSION)..."
docker build -t $(API_IMAGE):$(VERSION) ./api
@echo "API Docker image built successfully: $(API_IMAGE):$(VERSION)"
# Push Docker images
push-web:
@echo "Pushing web Docker image: $(WEB_IMAGE):$(VERSION)..."
docker push $(WEB_IMAGE):$(VERSION)
@echo "Web Docker image pushed successfully: $(WEB_IMAGE):$(VERSION)"
push-api:
@echo "Pushing API Docker image: $(API_IMAGE):$(VERSION)..."
docker push $(API_IMAGE):$(VERSION)
@echo "API Docker image pushed successfully: $(API_IMAGE):$(VERSION)"
# Build all images
build-all: build-web build-api
# Push all images
push-all: push-web push-api
build-push-api: build-api push-api
build-push-web: build-web push-web
# Build and push all images
build-push-all: build-all push-all
@echo "All Docker images have been built and pushed."
# Phony targets
.PHONY: build-web build-api push-web push-api build-all push-all build-push-all
# Variables
DOCKER_REGISTRY=langgenius
WEB_IMAGE=$(DOCKER_REGISTRY)/dify-web
API_IMAGE=$(DOCKER_REGISTRY)/dify-api
VERSION=latest
定义了一些变量:
DOCKER_REGISTRY:Docker 注册表的名称,这里是 langgenius。
WEB_IMAGE:Web 镜像的名称,基于 DOCKER_REGISTRY。
API_IMAGE:API 镜像的名称,基于 DOCKER_REGISTRY。
VERSION:镜像的版本,这里设置为 latest。
# Build Docker images
build-web:
@echo "Building web Docker image: $(WEB_IMAGE):$(VERSION)..."
docker build -t $(WEB_IMAGE):$(VERSION) ./web
@echo "Web Docker image built successfully: $(WEB_IMAGE):$(VERSION)"
构建 Web Docker 镜像的目标:
打印构建 Web Docker 镜像的信息。
执行 docker build 命令,将 ./web 目录下的内容构建成 Docker 镜像,并打标签为 $(WEB_IMAGE):$(VERSION)。
打印构建成功的信息。
build-api:
@echo "Building API Docker image: $(API_IMAGE):$(VERSION)..."
docker build -t $(API_IMAGE):$(VERSION) ./api
@echo "API Docker image built successfully: $(API_IMAGE):$(VERSION)"
构建 API Docker 镜像的目标:
打印构建 API Docker 镜像的信息。
执行 docker build 命令,将 ./api 目录下的内容构建成 Docker 镜像,并打标签为 $(API_IMAGE):$(VERSION)。
打印构建成功的信息。
# Push Docker images
push-web:
@echo "Pushing web Docker image: $(WEB_IMAGE):$(VERSION)..."
docker push $(WEB_IMAGE):$(VERSION)
@echo "Web Docker image pushed successfully: $(WEB_IMAGE):$(VERSION)"
推送 Web Docker 镜像的目标:
打印推送 Web Docker 镜像的信息。
执行 docker push 命令,将 $(WEB_IMAGE):$(VERSION) 镜像推送到注册表。
打印推送成功的信息。
push-api:
@echo "Pushing API Docker image: $(API_IMAGE):$(VERSION)..."
docker push $(API_IMAGE):$(VERSION)
@echo "API Docker image pushed successfully: $(API_IMAGE):$(VERSION)"
推送 API Docker 镜像的目标:
打印推送 API Docker 镜像的信息。
执行 docker push 命令,将 $(API_IMAGE):$(VERSION) 镜像推送到注册表。
打印推送成功的信息。
# Build all images
build-all: build-web build-api
构建所有 Docker 镜像的目标,依赖于 build-web 和 build-api 目标。
# Push all images
push-all: push-web push-api
推送所有 Docker 镜像的目标,依赖于 push-web 和 push-api 目标。
build-push-api: build-api push-api
构建并推送 API Docker 镜像的目标,依赖于 build-api 和 push-api 目标。
build-push-web: build-web push-web
构建并推送 Web Docker 镜像的目标,依赖于 build-web 和 push-web 目标。
# Build and push all images
build-push-all: build-all push-all
@echo "All Docker images have been built and pushed."
构建并推送所有 Docker 镜像的目标,依赖于 build-all 和 push-all 目标。完成后打印所有镜像已构建和推送成功的信息。
# Phony targets
.PHONY: build-web build-api push-web push-api build-all push-all build-push-all
定义伪目标,确保这些目标总是被执行,即使存在与目标同名的文件。
.PHONY语法.PHONY 是 Makefile 中的一个特殊指令,用于指定一组“伪目标”(phony targets)。伪目标不是文件名,它们只是标签,用来执行一组命令。通过将这些目标声明为伪目标,可以确保它们总是被执行,而不管是否存在与目标同名的文件。详细解释如下:
.PHONY: build-web build-api push-web push-api build-all push-all build-push-all
各个伪目标的解释:
build-web:
目标:构建 Web Docker 镜像。
命令:构建位于 ./web 目录下的 Docker 镜像,并打上标签 $(WEB_IMAGE):$(VERSION)。
build-api:
目标:构建 API Docker 镜像。
命令:构建位于 ./api 目录下的 Docker 镜像,并打上标签 $(API_IMAGE):$(VERSION)。
push-web:
目标:推送 Web Docker 镜像到 Docker 注册表。
命令:将 $(WEB_IMAGE):$(VERSION) 推送到 Docker 注册表。
push-api:
目标:推送 API Docker 镜像到 Docker 注册表。
命令:将 $(API_IMAGE):$(VERSION) 推送到 Docker 注册表。
build-all:
目标:构建所有 Docker 镜像。
依赖关系:依赖于 build-web 和 build-api 目标。
push-all:
目标:推送所有 Docker 镜像到 Docker 注册表。
依赖关系:依赖于 push-web 和 push-api 目标。
build-push-all:
目标:构建并推送所有 Docker 镜像。
依赖关系:依赖于 build-all 和 push-all 目标。
命令:构建和推送所有 Docker 镜像后,打印“所有 Docker 镜像已构建和推送成功”的信息。
NLP工程化(公众号)
NLP工程化(星球号)
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2025-12-14
Aiops探索:用Dify做一个基于LLM的ChatOps,从此我们的运维工作变得超级轻松
2025-12-13
告别慢检索!Dify知识库调优指南:既快又准的平衡艺术
2025-12-10
Dify v1.10.1升级到Dify v1.10.1-fix.1遇到了唯一问题!
2025-12-08
核弹级漏洞!Dify中招,刻不容缓,立即修复!
2025-12-05
【紧急预警】Dify 用户速看:Next.js 爆 CVSS 10.0 核弹级漏洞,已被真实验证攻击
2025-12-05
Dify v1.10.1-fix.1 版本紧急发布!
2025-12-04
Dify v1.10.1 VS Langchain v1.1.0性能测试结果,你绝对想不到!
2025-12-03
给 Dify 架构做“减法”,Dify × OceanBase 解锁一体化数据库
2025-10-13
2025-12-05
2025-10-12
2025-09-23
2025-11-09
2025-11-11
2025-12-08
2025-09-30
2025-11-20
2025-12-05
2025-11-29
2025-09-30
2025-09-23
2025-09-06
2025-09-05
2025-08-29
2025-08-18
2025-08-02