将体积添加到Docker容器的/ app问题

时间:2020-02-13 13:44:57

标签: docker

我无法在容器中创建一个映射到目录“ / app”的卷

基本上,这就是我更新代码时不需要再次构建容器的原因

这是我的docker文件

# stage 1 
FROM node:latest as node
WORKDIR /app
COPY . .
RUN npm install
RUN npm run build --prod

# stage 2
FROM nginx:alpine
COPY --from=node /app/dist/my-first-app /usr/share/nginx/html

我使用此命令来运行容器

docker run -d -p 100:80/tcp -v ${PWD}/app:/app docker-testing:v1

没有任何卷链接到它。

但是,如果我要这样做

docker run -d -p 100:80/tcp -v ${PWD} docker-testing:v1

我确实至少有一个音量

enter image description here

明显我做错了吗?

谢谢

1 个答案:

答案 0 :(得分:1)

${PWD}:/app:/app应该是${PWD}/app:/app

如果爆炸${PWD},您会得到类似/home/user/src/thingy:/app:/app的东西,

编辑: 我建议使用docker-compose来避免此类问题(它也大大简化了启动docker的命令)。

在您的情况下,docker-compose.yml看起来像这样:

docker run -d -p 100:80 / tcp -v $ {PWD}:/ app:/ app docker-testing:v1

version: "3"
services:
  doctesting:
    build: .
    image: docker-testing:v1
    volumes:
      - "./app:/app"  
    ports:
      - "100:80"

我并没有真正测试它是否可行,可能会有错别字...