首页 > 解决方案 > 在 Docker 中使用本地卷共享运行 Gatsby

问题描述

我正在尝试设置 Wordpress + Gatsby Docker 配置。整个 Wordpress 和数据库部分都不是问题,并且工作正常。

但盖茨比部分更多的是一个问题。这个想法是构建一个安装了 Gatsby CLI 和 Node 模块的映像,同时整个应用程序共享到本地文件夹。这就是我现在的位置Dockerfile

FROM node:14.11.0-alpine

RUN npm install -g gatsby-cli

WORKDIR /app

COPY package*.json ./
RUN npm install

COPY . .

EXPOSE 8000
CMD ["gatsby", "develop"]

这是图像的输出

gatsby_1     | ╔════════════════════════════════════════════════════════════════════════╗
gatsby_1     | ║                                                                        ║
gatsby_1     | ║   Gatsby collects anonymous usage analytics                            ║
gatsby_1     | ║   to help improve Gatsby for all users.                                ║
gatsby_1     | ║                                                                        ║
gatsby_1     | ║   If you'd like to opt-out, you can use `gatsby telemetry --disable`   ║
gatsby_1     | ║   To learn more, checkout https://gatsby.dev/telemetry                 ║
gatsby_1     | ║                                                                        ║
gatsby_1     | ╚════════════════════════════════════════════════════════════════════════╝
gatsby_1     |
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.
gatsby_1     |
wp-gatsby_gatsby_1 exited with code 1

但是当我node_modules在运行开发服务器之前检查右边的内容时,我可以看到所有 Gatsby 模块。这是整个项目的回购。知道我错过了什么吗?

标签: javascriptnode.jsdockergatsby

解决方案


失败的命令是/bin/sh -c autoreconf -fiv. 您可以检查基本映像并查看它是否丢失autoconf。您需要先安装它:

RUN apk update && apk add autoconf

既然您提到node_modules:确保您在 .dockerignore 中有一个条目,否则该命令COPY . .将覆盖yarn install已安装在映像中的任何内容。


推荐阅读