вот мое производство. 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](https://i.stack.imgur.com/UfIks.png)
Кажется, что он по какой-то причине выходит из себякоторый я пока не знаю, как решить эту проблему, у кого-то есть эта проблема, прежде чем поделиться с вами идеей, как ее исправить.