我有一个 Dockerfile,其中包含以下内容
# Build
FROM ${ECR_PREFIX}/maven:3.6.3-jdk-11 AS build
COPY src /home/app/src
COPY pom.xml /home/app
RUN mvn -f /home/app/pom.xml clean package
# Package
FROM ${ECR_PREFIX}/openjdk:11-jre-slim
COPY --from=build /home/app/target/application.jar application.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "application.jar"]
我尝试使用构建这个
export PREFIX=${AWS::AccountId}.dkr.ecr.${AWS::Region}.amazonaws.com
docker build -t backend --build-arg ECR_PREFIX=$PREFIX .
但这是行不通的。我真的不想对前缀进行硬编码,尤其是${AWS::AccountId}一部分是因为各种原因。
这里有什么指点吗?
您必须明确声明ARG
在你的 Dockerfile 中。如果你use an ARG值在一个FROM line那么ARG
需要先于任何FROM
。 (其他ARG
需要在使用它们的每个构建阶段重复。)
ARG REGISTRY=docker.io
FROM ${REGISTRY}/maven:3.6.3-jdk-11 AS build
REGISTRY=${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com
docker build \
-t $REGISTRY/backend:$(git rev-parse HEAD) \
--build-arg REGISTRY=$REGISTRY \
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)