011-Dockerfile-WORKDIR

本文深入解析Dockerfile中的WORKDIR指令,介绍其如何为RUN、CMD等指令设置工作目录,以及如何解析环境变量。通过示例展示如何在Dockerfile中多次使用WORKDIR指令,并说明其路径的相对性和绝对性。

语法

WORKDIR /path/to/workdir

作用 & 描述

WORKDIR 指令为 Dockerfile 中的任何 RUN, CMD, ENTRYPOINT, COPY 和 ADD 指令设置工作目录。如果 WORDIR 不存在,即使它未在任何后续Dockerfile指令中使用,也将创建它。

WORKDIR 指令可以在 Dockerfile 中多多次使用。如果提供了相对路径,则它将相对于先前 WORKDIR 指令的路径。例如:

WORKDIR /a
WORKDIR b
WORKDIR c
RUN pwd

此 Dockerfile 中最终 pwd 命令的输出为 /a/b/c

WORKDIR 指令可以解析先前使用 ENV 设置的环境变量。你只能使用 Dockerfile 中显示设置的环境变量。例如:

ENV DIRPATH /path
WORKDIR $DIRPATH/$DIRNAME
RUN pwd

此 Dockerfile 中最后一个 pwd 命令的输出将是 /path/$DIRNAME

示例

FROM registry-vpc.cn-beijing.aliyuncs.com/hilife/base-container:1.0.0.0

WORKDIR /home/admin

ADD jar/ROOT.jar ROOT.jar


EXPOSE  8080

ENV JAVA_OPTS="-Djava.security.egd=file:/dev/./urandom -server -Xfuture -Xmixed -Xmn384M -Xms1024M -Xmx1024M -Xss256K -XX:-UseBiasedLocking -XX:+AggressiveOpts -XX:+BackgroundCompilation -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=logs/  -XX:+AggressiveHeap -XX:CMSInitiatingOccupancyFraction=75 -XX:+ExplicitGCInvokesConcurrent -XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses -XX:MaxTenuringThreshold=6 -XX:MetaspaceSize=256M -XX:MinHeapFreeRatio=25 -XX:+ParallelRefProcEnabled -XX:SurvivorRatio=8 -XX:+UseParallelGC -XX:-UseParallelOldGC"

CMD java ${JAVA_OPTS} -jar ROOT.jar --spring.profiles.active=prod
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值