在容器化部署 Java 应用时,我们经常需要基于
openjdk:slim构建包含业务代码的镜像。为了实现 CI/CD 流程的通用性,很多开发者习惯在 Dockerfile 中使用类似{ {APP_NAME}}的占位符。然而,直接构建此类 Dockerfile 往往会遭遇语法报错。本文将复盘这一常见错误,并提供几种优雅的解决方案。
一、报错内容
在执行docker build命令构建 Java 应用镜像时,控制台抛出如下错误:
Dockerfile 片段:
# 基础镜像(已脱敏) FROM registry.example.com/library/openjdk:17-slim LABEL maintainer="dev-ops" # ... (省略字体安装步骤) ... # 报错行:试图使用双大括号占位符 ADD target/service-packs/{ {serviceName}}.tar.gz /{ {serviceName}}/ CMD bash -c "/{ {serviceName}}/bin/start.sh && tail -f /logs/app.out"报错信息: