运行 docker 容器时,有时候我们希望它默认进入一个工作目录,我们可以在 docker run 命令后追加参数 -w 来实现,这样我们就不需要在启动 docker 容器后再进行一次 cd 命令了。

docker run --help 帮助中 -w 的释义如下:

-w, --workdir string                 Working directory inside the container

以构建 maven 项目为例如下:

docker run -it --rm \
-v /code/spring-boot-demo/:/spring-boot-demo \
-w /spring-boot-demo \
--name maven maven:3.8.6-jdk-8 \
mvn clean package -T 1C -Dmaven.test.skip=true -Dmaven.compile.fork=true

参数说明:

  • --name 指定了容器创建后的名称(使用 --rm 时不建议指定 --name,防止并发 run 时同名报错)
  • -v 参数挂载目录,将宿主机的文件夹挂载到容器中
  • --rm 表示容器运行退出后自动清除挂载卷,等价在容器退出后执行 docker rm -v,指定 --rm 参数启动容器时通常不使用 -d 参数
  • -w 指定容器启动后的默认工作目录,全称是 --workdir
  • -T 1C 参数表示使用每个 CPU 核心跑一个工程(适用 Maven 3.x 以后版本)
  • -Dmaven.test.skip=true 表示跳过执行 Unit 测试用例
  • -Dmaven.compile.fork=true 表示使用多线程进行编译

(END)

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐