Я пытаюсь запустить Гэтсби с помощью Docker Compose.Насколько я понимаю, сайт Gatsby работает в моем док-контейнере.
Я сопоставляю порт 8000 контейнера с портом 8000 на моем локальном хосте.Но при просмотре localhost:8000
я не получаю свой сайт в Гэтсби.
Я использую следующие Dockerfile
для создания изображения с docker build -t nxtra/gatsby .
:
FROM node:8.12.0-alpine
WORKDIR /project
COPY ./package.json /project/package.json
COPY ./.entrypoint/entrypoint.sh /entrypoint.sh
RUN apk update \
&& apk add bash \
&& chmod +x /entrypoint.sh \
&& npm set progress=false \
&& npm install -g yarn gatsby-cli
EXPOSE 8000
ENTRYPOINT [ "/entrypoint.sh" ]
entrypoints.sh
содержит:
#!/bin/bash
yarn install
gatsby develop
docker-compose.yml работает с docker-compose up
version: '3.7'
services:
gatsby:
image: nxtra/gatsby
ports:
- "8000:8000"
volumes:
- ./:/project
tty: true
docker ps
показывает, что порт 8000 переадресован 0.0.0.0:8000->8000/tcp
.
Проверка моего контейнера с помощью docker inspect --format='{{.Config.ExposedPorts}}' id
подтверждает доступность порта -> map[8000/tcp:{}]
docker tops
в контейнере показывает, что в контейнере выполняются следующие процессы:
18465 root 0:00 {entrypoint.sh} /bin/bash /entrypoint.sh
18586 root 0:11 node /usr/local/bin/gatsby develop
18605 root 0:00 /usr/local/bin/node /project/node_modules/jest-worker/build/child.js
18637 root 0:00 /bin/bash
Dockerfile и docker-compose.yml находятся в корне моего проекта Gatsby.Мой проект работает правильно, когда я запускаю его без докера gatsby develop
.
Что я делаю не так, чтобы сайт Gatsby, работающий в моем контейнере, был виден на localhost: 8000?