elixir-phoenix应用程序通过swarm模式继续在docker容器内退出

时间:2018-06-12 11:32:42

标签: docker elixir phoenix-framework docker-swarm

这是我的production.Dockerfile

FROM elixir:1.6.5

RUN apt-get -y -qq update > /dev/null && \
  mix local.hex --force && \
  mix local.rebar --force && \
  ln -s /lib/x86_64-linux-gnu/libncursesw.so.5 /lib/x86_64-linux-gnu/libncursesw.so.6

WORKDIR /phx_test

ADD phx_test.tar.gz .

EXPOSE 4001

ENTRYPOINT ["bin/phx_test"]

CMD ["console"]

production.docker-stack.yml

version: "3.6"

services:
  server:
    image: repo-name/webapp:0.0.2
    depends_on:
      - database
    networks:
      - backend
    ports:
      - "80:4001"
    deploy:
      replicas: 3

  database:
    image: postgres:10
    ports:
      - "5432:5432"
    secrets:
      - db-secret
    volumes:
      - db-data:/var/lib/postgresql/data
    environment:
      - POSTGRES_USER=pguser
      - POSTGRES_PASSWORD_FILE=/run/secrets/db-secret
      - POSTGRES_HOST=db-phx-test
      - POSTGRES_DB=phx-test-prod
    networks:
      - backend
networks:
  backend:

volumes:
  db-data:

secrets:
  db-secret:
    external: true

配置/ prod.secret.exs

config :phx_test, PhxTestWeb.EndPoint,
  http: [port: 4001],
  url: [host: "server", port: 4001],
  secret_key_base: "******"

config :phx_test, PhxTest.Repo,
  adapter: Ecto.Adapter.Postgres,
  username: "pguser",
  password: "super-secret-pw",
  hostname: "database",
  database: "phx-test-prod",
  port: 5432,
  pool_size: 15

我将使用Phoenix + Absinthe进行下一个即将开展的项目,我想将我的凤凰应用程序停靠,所以我使用简单的hello world phoenix应用程序进行测试。

我可以从我构建的图像中轻松运行容器并访问hello world页面而没有任何问题,但在执行stack deploy后,发生了这种情况

Elixir console logs

由于某种原因我似乎不知道如何解决这个问题,任何人都有这个问题,请分享一些想法如何解决它。

0 个答案:

没有答案