Запуск Gatsby в Docker с общим доступом к локальному тому

#javascript #node.js #docker #gatsby

#javascript #node.js #docker #gatsby

Вопрос:

Я пытаюсь настроить конфигурацию WordPress Gatsby Docker. Весь WordPress и часть базы данных не являются проблемой и работают нормально.

Но часть Gatsby — это скорее проблема. Идея состоит в том, чтобы создать образ, в котором установлен Gatsby CLI и установлены модули узлов, в то время как все приложение доступно для локальной папки. Вот где я нахожусь с 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. Вот репозиторий со всем проектом. Есть идеи, чего мне не хватает?

Ответ №1:

Команда, которая завершается /bin/sh -c autoreconf -fiv с ошибкой. Вы можете проверить базовое изображение и увидеть, что оно отсутствует autoconf . Сначала вам нужно установить его с помощью:

 RUN apk update amp;amp; apk add autoconf
  

Поскольку вы упомянули node_modules : убедитесь, что у вас есть запись для этого в .dockerignore, иначе команда COPY . . перезапишет все yarn install , что уже установлено в образе.

Комментарии:

1. Вероятно, вам понадобится больше таких пакетов, как build-base autoconf automake libtool pkgconfig nasm . Источник: medium.com/ultralight-io /…

2. Это действительно было проблемой. Проблема теперь превратилась в нечто более ориентированное на Gatsby, я думаю. Но спасибо за ваш ответ