语法
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