尝试在亚马逊弹性容器服务上运行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控制台上操作很麻烦,所以想要通过命令行来完成设置。