Docker 用作编码环境

【Docker 用作编码环境】

Debug your app, not your environment.

示例

docker run -it \
    --rm \
    -v `pwd`:/app \
    -w /app \
    -p 80:80 \
    node:14.15.4 \
    sh -c "npm install && npm run dev" 

参数说明

命令含义
-it启动一个伪终端以交互模式运行容器
–rm即用即抛,用完删除容器
-v映射目录,通常把代码目录映射到容器工作目录中
-w指定容器工作目录
-p本地端口:容器端口 的映射
sh -c容器启动后执行的脚本,可以是双引号引起来命令字符串,也可以是映射在工作目录里的某个脚本文件

注意

sh -c 后面如果是多条命令字符串,一定要用英文双引号包裹,如:"命令1 && 命令2" ,如果不包裹,命令1 && 命令2 则只有 命令1 在容器中执行,命令2 在宿主机执行,原因 && 连接的命令相当于 docker run命令2命令1 只是作为 sh -c 的参数。

常用

# install 
docker run -it --rm -v `pwd`:/app -w /app node:14.15.4 sh -c "npm config set registry https://registry.npm.taobao.org && npm install"
# run dev
docker run -it --rm -v `pwd`:/app -w /app -p 80:80 node:14.15.4 sh -c "npm run dev"

上面的内容可以写到 package.json 或者 Makefile 里,熟悉哪个用哪个,这样用起来能方便些。

# 想换 node 版本了直接改这里就可以了
# 如果用的 package.json 也可以设置个变量,本地 npm 仅作为调用 docker 的入口
_NODE_VERSION=14.15.4

docker-install:
    @docker run -it --rm -v `pwd`:/app -w /app node:$(_NODE_VERSION) sh -c "npm config set registry https://registry.npm.taobao.org && npm install"

docker-run-dev:
    @docker run -it --rm -v `pwd`:/app -w /app -p 80:80 node:$(_NODE_VERSION) sh -c "npm run dev"

docker-build:
    @docker run -it --rm -v `pwd`:/app -w /app node:$(_NODE_VERSION) sh -c "npm run build"

docker-test:
    @docker run -it --rm -v `pwd`:/app -w /app node:$(_NODE_VERSION) sh -c "npm run test"

注意 Makefile 中的缩进不能用空格代替

使用解释型编程语言,比如 python 和 nodejs 这类在编码阶段还是比较容易使用 docker 来真正统一所有人的编码环境的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lixifun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值