Node.js 节点应用程序赢得';如果存在';这是一个共享卷
我在本地生成了一个盖茨比网站。然后我设置了一个Docker容器来运行它。这是一个标准设置:复制Node.js 节点应用程序赢得';如果存在';这是一个共享卷,node.js,docker,gatsby,Node.js,Docker,Gatsby,我在本地生成了一个盖茨比网站。然后我设置了一个Docker容器来运行它。这是一个标准设置:复制package.json,安装模块,复制本地文件,并使用共享卷启动开发脚本 但当它启动时,我遇到了一个错误: gatsby_1 | ERROR gatsby_1 | gatsby_1 | There was a problem loading the local develop command. Gatsby may not be installed in your site'
package.json
,安装模块,复制本地文件,并使用共享卷启动开发脚本
但当它启动时,我遇到了一个错误:
gatsby_1 | ERROR
gatsby_1 |
gatsby_1 | There was a problem loading the local develop command. Gatsby may not be installed in your site's "node_modules" directory. Perhaps you need to run "npm install"? You might need to delete your "package-lock.json" as well.
这是Dockerfile
:
FROM node:14.11.0
RUN npm install -g gatsby-cli
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 8000
CMD ["gatsby", "develop", "-H", "0.0.0.0"]
和docker compose.yml
:
version: "3"
services:
db:
image: mariadb:latest
environment:
MYSQL_ROOT_PASSWORD: root
volumes:
- ./db:/var/lib/mysql
adminer:
image: adminer:latest
ports:
- 8082:8080
wordpress:
image: wordpress:5.5.1-php7.4-apache
ports:
- 8081:80
volumes:
- ./wordpess/plugins:/var/www/html/wp-content/plugins
- ./wordpess/themes:/var/www/html/wp-content/themes
gatsby:
build: ./gatsby
ports:
- 8080:8000
volumes:
- ./gatsby:/app
但是,如果我去掉盖茨比容器的体积,所有的符文都很好
所以我猜权限有问题,但我没办法解决
这里有一个。是的,
卷:
用本地文件系统的内容覆盖/app
目录的内容,基本上Dockerfile所做的一切都被完全忽略。您可以安全地删除该块以运行实际内置到映像中的代码。我不确定这是不是一种方法。如果我们只使用buit映像,而在docker compose.yml
中没有要共享的代码和卷集,那么prodcution部署会怎么样?我必须为prod使用另一个Dockerfile
just?是的,卷:
用本地文件系统的内容覆盖/app
目录的内容,基本上Dockerfile所做的一切都被完全忽略。您可以安全地删除该块以运行实际内置到映像中的代码。我不确定这是不是一种方法。如果我们只使用buit映像,而在docker compose.yml
中没有要共享的代码和卷集,那么prodcution部署会怎么样?我必须使用另一个Dockerfile
juste进行prod?