Приложение elixir-phoenix продолжает выходить из контейнера докера в режиме роя - PullRequest
0 голосов
/ 12 июня 2018

вот мое производство. 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

config / 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 для моего следующего предстоящего проекта и хочу докеризировать свое приложение phoenix, поэтому я использую простое приложение hello world phoenix для тестирования с ним.

Я мог запустить контейнер из образа, который я построиллегко и без проблем получить доступ к странице приветствия, но после выполнения stack deploy это произошло

Elixir console logs

Кажется, что он по какой-то причине выходит из себякоторый я пока не знаю, как решить эту проблему, у кого-то есть эта проблема, прежде чем поделиться с вами идеей, как ее исправить.

...