Как заменить существенный контейнер БД на AWS RDS?
Я пытаюсь запустить материально докер 4.10.1 на AWS EC2.
И я хочу, чтобы мой app
Контейнер для подключения к пользовательской AWS RDS. Поэтому я внес следующие изменения в docker-compose.yml
файл:
- Удалить
db
контейнер. - Используйте версию команды.
- Изменить информацию о подключении к базе данных.
`` `
version: "2"
services:
-
- db:
- build: db
- read_only: true
- restart: unless-stopped
- volumes:
- - ./volumes/db/var/lib/postgresql/data:/var/lib/postgresql/data
- - /etc/localtime:/etc/localtime:ro
- environment:
- - POSTGRES_USER=mmuser
- - POSTGRES_PASSWORD=mmuser_password
- - POSTGRES_DB=mattermost
- # uncomment the following to enable backup
- # - AWS_ACCESS_KEY_ID=XXXX
- # - AWS_SECRET_ACCESS_KEY=XXXX
- # - WALE_S3_PREFIX=s3://BUCKET_NAME/PATH
- # - AWS_REGION=us-east-1
-
app:
build:
context: app
# comment out following lines for team edition or change UID/GID
- # args:
- # - edition=team
- # - PUID=1000
- # - PGID=1000
+ args:
+ - edition=team
+ - PUID=1000
+ - PGID=1000
restart: unless-stopped
volumes:
- ./volumes/app/mattermost/config:/mattermost/config:rw
@@ -35,12 +17,17 @@ services:
- /etc/localtime:/etc/localtime:ro
environment:
# set same as db credentials and dbname
- - MM_USERNAME=mmuser
- - MM_PASSWORD=mmuser_password
- - MM_DBNAME=mattermost
+ - MM_USERNAME=myusername
+ - MM_PASSWORD=mypassword
+ - MM_DBNAME=my-mattermost
+ - DB_HOST=myrds.rds.amazonaws.com
+ - DB_PORT_NUMBER=3306
+ - MM_SQLSETTINGS_DRIVERNAME=mysql
+ -
MM_SQLSETTINGS_DATASOURCE="myusername:mypassword@tcp(myrds.rds.amazonaws.com:3306)/my-mattermost?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s"
+
# in case your config is not in default location
#- MM_CONFIG=/mattermost/config/config.json
-
web:
build: web
ports:
@@ -52,6 +39,6 @@ services:
# This directory must have cert files if you want to enable SSL
- ./volumes/web/cert:/cert:ro
- /etc/localtime:/etc/localtime:ro
- # Uncomment for SSL
- # environment:
- # - MATTERMOST_ENABLE_SSL=true
+ environment:
+ - APP_HOST=app
+
`` `
Тогда я получил Failed to ping DB retrying in 10 seconds err=time: unknown unit s\" in duration 30s\"
ошибка при запуске docker-compose с помощью docker-compose up -d
,
Сообщение об ошибке можно найти на volumes/app/mattermost/logs/mattermost.log
,
Почему это происходит? Я не нашел ничего, что указывает единицу времени в файлах конфигурации.
Я подтвердил, что мой EC2 может подключиться к моей RDS, запустив mysql -h myrds.rds.amazonaws.com -umyusername -pmypassword
,
Кто-нибудь знает, как заменить материю db
контейнер с AWS RDS?
1 ответ
После удаления двойных кавычек из MM_SQLSETTINGS_DATASOURCE
переменная, проблема решена.
Я имею в виду, я меняю линию MM_SQLSETTINGS_DATASOURCE="myusername:mypassword@tcp(myrds.rds.amazonaws.com:3306)/my-mattermost?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s"
в
MM_SQLSETTINGS_DATASOURCE=myusername:mypassword@tcp(myrds.rds.amazonaws.com:3306)/my-mattermost?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s