gpt4 book ai didi

docker - 使用docker compose运行Gatsby

转载 作者:行者123 更新时间:2023-12-04 14:38:15 25 4
gpt4 key购买 nike

我正在尝试通过Docker Compose运行Gatsby。
据我了解,Gatsby站点正在我的docker容器中运行。
我将容器的端口8000映射到我的本地主机上的端口8000。
但是当查看localhost:8000时,我没有得到我的gatsby网站。

我使用以下Dockerfiledocker 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项目的根目录中。
在没有docker gatsby develop的情况下运行我的项目时,它运行正常。

要使在我的容器中运行的Gatsby网站在localhost:8000上可见,我在做什么?

最佳答案

我的问题是, Gatsby 只在监听like this answer suggests容器中的请求。确保已为主机0.0.0.0配置Gatsby。以这个(有点hacky)设置为例:

Dockerfile

FROM node:alpine
RUN npm install --global gatsby-cli

docker-compose.yml
version: "3.7"

services:
gatsby:
build:
context: .
dockerfile: Dockerfile
entrypoint: gatsby
volumes:
- .:/app

develop:
build:
context: .
dockerfile: Dockerfile
command: gatsby develop -H 0.0.0.0
ports:
- "8000:8000"
volumes:
- .:/app

您可以从容器中运行Gatsby命令: docker-compose run gatsby info
或运行开发服务器: docker-compose up develop

关于docker - 使用docker compose运行Gatsby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52961824/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com