Как запустить prpl-сервер внутри докера с PM2? - PullRequest
0 голосов
/ 31 января 2019

Мой Dockerfile -

FROM keymetrics/pm2:latest-alpine
RUN mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app
WORKDIR /home/node/app
RUN npm install prpl-server
COPY build build/
COPY package.json .
COPY polymer.json .
COPY --chown=node:node . .
USER node
EXPOSE 8080
RUN ls -al -R
CMD [ "pm2-runtime", "start", "ecosystem.config.js", "--web"]

, а мой ecosystem.comfig.js -

module.exports = {
  apps: [{
    name: 'ozark',
    script: 'npm',
    args: 'start',
    instances: 1,
    autorestart: true,
    watch: false,
    max_memory_restart: '1G',
    env: {
      NODE_ENV: "development",
    },
    env_production: {
      NODE_ENV: "production",
    }
  }],
};

, а скрипт запуска в package.json -

"start": "cd build && prpl-server --root . --config polymer.json --port 8080 && cd ../",

чтобы построить контейнер, я делаю

polymer build && docker build -t ozark .

, чтобы запустить контейнер, я делаю

docker run --name ozark -p 80:8080 -d ozark

, но когда я просматриваю http://locallhost, ничего не загружается, и я не понимаю, почему.Я просмотрел логи изнутри контейнера, и сервер prpl работает на порту 8080

Docker PS дает мне ...

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                              NAMES
e7f633881e17        ozark               "pm2-runtime start e…"   11 minutes ago      Up 11 minutes       80/tcp, 443/tcp, 43554/tcp, 0.0.0.0:80->8080/tcp   ozark
...