尝试在亚马逊弹性容器服务上运行Redmine

首先

我总结了在Macintosh上使用ECS启动Redmine的步骤。
由于这仅是为了学习而尝试运行的步骤,并不足以在实际操作中使用,仍需要进一步改进。

在开发PC(Mac)的docker环境中进行操作验证。

安装Docker for Mac

Mac 版的 Docker 桌面版

安装 Docker Compose

安装Docker Compose

创建文件

 mkdir ~/docker-redmine/postgresql/data
 mkdir ~/docker-redmine/redmine/data
 vi ~/docker-redmine/docker-compose.yml
version: '2'

services:
  postgresql:
    image: sameersbn/postgresql:9.6-4
    environment:
    - DB_USER=redmine
    - DB_PASS=password
    - DB_NAME=redmine_production
    volumes:
    - ./postgresql/data:/var/lib/postgresql

  redmine:
    image: sameersbn/redmine:4.0.3-1
    depends_on:
    - postgresql
    environment:
    - TZ=Asia/Kolkata

    - DB_ADAPTER=postgresql
    - DB_HOST=postgresql
    - DB_PORT=5432
    - DB_USER=redmine
    - DB_PASS=password
    - DB_NAME=redmine_production

    - REDMINE_PORT=80
    - REDMINE_HTTPS=false
    - REDMINE_RELATIVE_URL_ROOT=
    - REDMINE_SECRET_TOKEN=

    - REDMINE_SUDO_MODE_ENABLED=false
    - REDMINE_SUDO_MODE_TIMEOUT=15

    - REDMINE_CONCURRENT_UPLOADS=2

    - REDMINE_BACKUP_SCHEDULE=
    - REDMINE_BACKUP_EXPIRY=
    - REDMINE_BACKUP_TIME=

    - SMTP_ENABLED=false
    - SMTP_METHOD=smtp
    - SMTP_DOMAIN=www.example.com
    - SMTP_HOST=smtp.gmail.com
    - SMTP_PORT=587
    - SMTP_USER=mailer@example.com
    - SMTP_PASS=password
    - SMTP_STARTTLS=true
    - SMTP_AUTHENTICATION=:login

    - IMAP_ENABLED=false
    - IMAP_HOST=imap.gmail.com
    - IMAP_PORT=993
    - IMAP_USER=mailer@example.com
    - IMAP_PASS=password
    - IMAP_SSL=true
    - IMAP_INTERVAL=30

    ports:
    - "80:80"
    links:
    - postgresql
    volumes:
    - ./redmine/data:/home/redmine/data

启动容器

cd ~/docker-redmine/
docker-compose build
docker-compose up

请稍等一下,当在 http://localhost/ 上显示红宝石矿的页面时,就可以了。

在亚马逊弹性容器服务上进行启动。

在中国的母语中将以下内容进行改述,只需要一种选项:

安装和配置 aws-cli。

安装AWS CLI

安装和配置 ecs-cli。

安装 Amazon ECS CLI
保存配置设置

ecs-cli configure --region ap-northeast-1 --cluster ecs-cli-test

创建配置文件

vi ~/docker-redmine/docker-compose-ecs.yml
version: '2'

services:
  postgresql:
    image: sameersbn/postgresql:9.6-4
    environment:
    - DB_USER=redmine
    - DB_PASS=password
    - DB_NAME=redmine_production

  redmine:
    image: sameersbn/redmine:4.0.3-1
    environment:
    - TZ=Asia/Kolkata

    - DB_ADAPTER=postgresql
    - DB_HOST=postgresql
    - DB_PORT=5432
    - DB_USER=redmine
    - DB_PASS=password
    - DB_NAME=redmine_production

    - REDMINE_PORT=80
    - REDMINE_HTTPS=false

    - REDMINE_SUDO_MODE_ENABLED=false
    - REDMINE_SUDO_MODE_TIMEOUT=15

    - REDMINE_CONCURRENT_UPLOADS=2

    - SMTP_ENABLED=false
    - SMTP_METHOD=smtp
    - SMTP_DOMAIN=www.example.com
    - SMTP_HOST=smtp.gmail.com
    - SMTP_PORT=587
    - SMTP_USER=mailer@example.com
    - SMTP_PASS=password
    - SMTP_STARTTLS=true
    - SMTP_AUTHENTICATION=:login

    - IMAP_ENABLED=false
    - IMAP_HOST=imap.gmail.com
    - IMAP_PORT=993
    - IMAP_USER=mailer@example.com
    - IMAP_PASS=password
    - IMAP_SSL=true
    - IMAP_INTERVAL=30

    ports:
    - "80:80"
    links:
    - postgresql

创建 EC2 密钥对

使用 Amazon EC2 创建密钥对

启动集群

为了运行Redmine,至少需要这么多。 在keypair中,输入上述已创建的keypair名称。

ecs-cli up --keypair ec2-test-key --capability-iam --size 2 --instance-type t2.small

创建任务

尝试从创建任务到执行任务,但由于缺少必要的设置而导致失败。

ecs-cli compose -f docker-compose-ecs.yml up

在AWS控制台上修复任务

执行ECS任务定义:从docker-redmine的详细页面中执行”创建新版本”。将主要内容注册到docker-compose-ecs.yml中的注释中。
执行以下注册并执行”创建”。

音量的注册

ボリューム
名前
postgresql-vol
ドライバー
local
ボリュームタイプ
Docker
スコープ
task

名前
redmine-vol
ドライバー
local
ボリュームタイプ
Docker
スコープ
task

容器中的PostgreSQL配置修正

增加 HEALTHCHECK 命令

CMD-SHELL,psql -d redmine_production -U redmine || exit 1
    • 環境:基本 のチェックボックスをOFF

 

    • ストレージとログ マウントポイントに postgresql-vol を選択

path: /var/lib/postgresql

Auto-configure CloudWatch Logs のチェックボックスを ON

修改红宝石容器设置

    • STARTUP DEPENDENCY ORDERING

Container name:postgresql
Condition:HEALTHY

ストレージとログ マウントポイントに redmine-vol を選択

path: /home/redmine/data

Auto-configure CloudWatch Logs のチェックボックスを ON

在AWS控制台上执行任务。

任务定义:从docker-redmine的最新版本的详细页面中执行“执行任务”操作。
使用EC2启动类型来执行任务。
启动后,点击redmine容器详细信息中显示的外部链接。
如果Redmine页面成功显示,则表示OK。

删除集群

使用以下命令将删除与集群相关的所有资源,任务定义文件将保留。

ecs-cli down --force

改善方面

因为在AWS控制台上操作很麻烦,所以想要通过命令行来完成设置。

广告
将在 10 秒后关闭
bannerAds