我想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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
两个命令以证明存在一个目录/home/client:
docker exec container pwd
Run Code Online (Sandbox Code Playgroud)
给出: /home
docker exec container ls client
Run Code Online (Sandbox Code Playgroud)
给出:
node_modules
package.json
src
webpack.config.js
Run Code Online (Sandbox Code Playgroud)
那是我的主机的节点模块。
编辑 2 运行时:
docker exec container cd /home/client
Run Code Online (Sandbox Code Playgroud)
它产生以下错误:
rpc 错误:code = 2 desc = oci 运行时错误:exec 失败:container_linux.go:247:启动容器进程导致“exec:\”cd\“:在 $PATH 中找不到可执行文件”
这是可能的:
docker exec {container} sh -c "cd /home/client && npm install"
Run Code Online (Sandbox Code Playgroud)
感谢马特
| 归档时间: |
|
| 查看次数: |
6012 次 |
| 最近记录: |