代码之家  ›  专栏  ›  技术社区  ›  xtra

运行盖茨比和Docker组合

  •  4
  • xtra  · 技术社区  · 7 年前

    我正试着用Docker谱写来管理盖茨比。 据我所知盖茨比的网站是在我的码头集装箱运行。
    我将容器的端口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位于我的盖茨比项目的根目录中。 我的项目在没有Docker的情况下运行时运行正常 gatsby develop 是的。

    如果让运行在容器中的gatsby站点在本地主机:8000上可见,我做错了什么?

    1 回复  |  直到 7 年前
        1
  •  5
  •   Matt Jensen    7 年前

    我的问题是盖茨比只是在听集装箱里的请求, like this answer suggests 是的。确保您已经为主机配置了gatsby 0.0.0.0 是的。以这个(有点老套)设置为例:

    停靠文件

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

    复方制剂

    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

    推荐文章