我想在容器中运行npm install
命令。
但很简单:docker exec container npm install
对我来说不合适。
我想在/home/client
中运行此命令,但我在容器中的工作目录为/home
这可能吗? 我不想进入容器,我不想改变工作环境。
修改1 Dockerfile:
FROM ubuntu:16.04
COPY . /home
WORKDIR /home
RUN apt-get update && apt-get install -y \
python-pip \
postgresql \
rabbitmq-server \
libpq-dev \
python-dev \
npm \
mongodb
RUN pip install -r requirements.txt
Docker运行命令:
docker run \
-tid \
-p 8000:8000 \
-v $(PWD):/home \
--name container \
-e DB_NAME \
-e DB_USER \
-e DB_USER_PASSWORD \
-e DB_HOST \
-e DB_PORT \
container
为了证明存在目录/home/client
:
docker exec container pwd
给予:/home
docker exec container ls client
给予:
node_modules
package.json
src
webpack.config.js
来自我主机的节点模块。
编辑2 运行时:
docker exec container cd /home/client
它会产生以下错误:
rpc错误:代码= 2 desc = oci运行时错误:exec失败:container_linux.go:247:启动容器进程导致" exec:\" cd \":找不到可执行文件在$ PATH"
答案 0 :(得分:1)
在这样的单个命令中执行:
$ docker exec container sh -c "cd /home/client && npm install"
或者像这样(作为npm install
的arg):
$ docker exec container npm install --prefix /home/client
使用互动终端:
$ docker exec -it container /bin/bash
# cd /home/client
# npm install
答案 1 :(得分:1)