Как заменить существенный контейнер БД на AWS RDS?

Я пытаюсь запустить материально докер 4.10.1 на AWS EC2.

И я хочу, чтобы мой app Контейнер для подключения к пользовательской AWS RDS. Поэтому я внес следующие изменения в docker-compose.yml файл:

  1. Удалить db контейнер.
  2. Используйте версию команды.
  3. Изменить информацию о подключении к базе данных.

`` `

 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

Другие вопросы по тегам