[英]Creating app and search containers to run in AWS ECS/Fargate
在我們的情況下,我們希望在我們的 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:
AFAICT 如果數據庫已經設置,你沒有理由使用 DATABASE_ROOT_USER 和 DATABASE_USER
我建議您可以先刪除它,但除此之外,它看起來與我已經使用了一段時間的 docker-compose 設置非常相似
我要補充的唯一一件事是這個問題與 ECS 或 Fargate 完全無關,它實際上只是一個 docker compose 文件,據我所知,你無法運行
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.