【发布时间】:2019-11-26 16:11:57
【问题描述】:
在我们的情况下,我们希望在 ECS 集群上将应用容器和搜索容器作为单独的服务运行。
我需要创建一个搜索容器以在 ECS/Fargate 下运行并链接到负载均衡器。
我需要创建一个应用容器,它能够与我们的 PostgreSQL RDS 实例通信,该实例已经设置了 fusionauth 表,并通过负载均衡器与搜索容器通信。
我从 docker-compose.yaml 开始并删除了 db 服务。我将 fusionauth 部分中的值更改为
fusionauth:
image: fusionauth/fusionauth-app:latest
depends_on:
- search
environment:
DATABASE_URL: jdbc:postgresql://mypostgre-rds-endpoint:5432/fusionauth
DATABASE_ROOT_USER: root_user_account
DATABASE_ROOT_PASSWORD: root_user_password
DATABASE_USER: fusionauth
DATABASE_PASSWORD: fusionauth_user_password
FUSIONAUTH_MEMORY: ${FUSIONAUTH_MEMORY}
FUSIONAUTH_SEARCH_SERVERS: http://search:9200
FUSIONAUTH_URL: http://load-balancer-url:9011
networks:
- db
- search
restart: unless-stopped
ports:
- 9011:9011
volumes:
- fa_config:/usr/local/fusionauth/config
第一个问题是当我运行这个容器时,它进入维护模式并尝试创建数据库。我收到一个语言环境错误。我不需要维护模式,我只需要它连接到数据库。所以我想我一定是数据库 url 定义不正确。
第二个问题,我需要能够为搜索做同样的事情:创建一个在 ECS/Fargate 下运行并通过负载均衡器访问的容器。
我还不是 docker 专家。但是我找不到任何特定的文档来帮助我弄清楚如何配置和部署搜索和应用程序容器。
感谢任何指向现有文档的指针或帮助以使其运行。
我知道我必须更改 docker-compose 文件中的搜索部分(完全在下面发布),但我还不知道要更改什么,或者如何构建用于搜索的容器。
现在的整个 docker-compose 文件。
version: '3'
services:
search:
image: docker.elastic.co/elasticsearch/elasticsearch:6.3.1
environment:
- cluster.name=fusionauth
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=${ES_JAVA_OPTS}"
ports:
- 9200:9200
- 9300:9300
networks:
- search
restart: unless-stopped
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- es_data:/usr/share/elasticsearch/data
fusionauth:
image: fusionauth/fusionauth-app:latest
depends_on:
- search
environment:
DATABASE_URL: jdbc:postgresql://mypostgre-rds-endpoint:5432/fusionauth
DATABASE_ROOT_USER: root_user_account
DATABASE_ROOT_PASSWORD: root_user_password
DATABASE_USER: fusionauth
DATABASE_PASSWORD: fusionauth_user_password
FUSIONAUTH_MEMORY: ${FUSIONAUTH_MEMORY}
FUSIONAUTH_SEARCH_SERVERS: http://search:9200
FUSIONAUTH_URL: http://load-balancer-url:9011
networks:
- db
- search
restart: unless-stopped
ports:
- 9011:9011
volumes:
- fa_config:/usr/local/fusionauth/config
networks:
db:
driver: bridge
search:
driver: bridge
volumes:
db_data:
es_data:
fa_config:
【问题讨论】:
标签: docker aws-fargate fusionauth