首页 > 解决方案 > 将卷添加到 docker 容器的 /app 问题

问题描述

我在创建映射到容器中目录“/app”的卷时遇到问题

这基本上是这样,当我更新代码时,我不需要再次构建容器

这是我的码头文件

# 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

我至少得到一卷

在此处输入图像描述

有什么明显的我做错了吗?

谢谢

标签: docker

解决方案


${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"

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


推荐阅读