fargateでsonarqube動かしてみるテスト

ecs-cliの導入

brew install ecs-cli

~/.ecs/credentialsの内容

version: v1
default: default
region: ap-northeast-1
ecs_profiles:
  default:
    aws_access_key_id: xxx
    aws_secret_access_key: xxx

ECSクラスタ作成

手元の ecs-params.yml を参照している

ecs-cli up \
  --cluster foobar-cluster \
  --vpc vpc-xxx \
  --subnets subnet-xxx \
  --launch-type FARGATE

sonarqubeサーバ作成

  ecs-cli compose \
    -f docker-compose.yml  service up \
    --launch-type FARGATE \
    --cluster foobar-cluster 

ecs-params.yml

version: 1
task_definition:
  ecs_network_mode: awsvpc
  task_execution_role: ecsTaskExecutionRole
  task_size:
    cpu_limit: 1024
    mem_limit: 8GB
  services:
    sonarqube:
      essential: true
 
run_params:
  network_configuration:
    awsvpc_configuration:
      subnets:
        - subnet-xxx
      security_groups:
        - sg-xxx

docker-compose.yml

version: '2'
services:
  # postgresql
  postgresql-sonarqube:
    container_name: postgresql-sonarqube
    image: postgres:11.2-alpine
    volumes:
      - /var/lib/postgresql
      - /var/lib/postgresql/data
    ports:
      - 5432:5432
    networks:
      - sonarqube-server-network
    environment:
      POSTGRES_USER: sonar
      POSTGRES_PASSWORD: sonar
      POSTGRES_INITDB_ARGS: "--encoding=UTF-8"

  # SonarQube Server
  sonarqube-server:
    container_name: sonarqube-server
    image: sonarqube:7.5-community
    volumes:
      - ./data/sonarqube/extensions/plugin:/opt/sonarqube/extensions/plugins
    ports:
      - "9000:9000"
      - "9092:9092"
    networks:
      - sonarqube-server-network
    environment:
      - SONARQUBE_JDBC_USERNAME=xxx
      - SONARQUBE_JDBC_PASSWORD=xxx
      - "SONARQUBE_JDBC_URL=jdbc:postgresql://127.0.0.1:5432/sonar"
    volumes:
      - /opt/sonarqube/conf
      - /opt/sonarqube/data
      - /opt/sonarqube/extensions
      - /opt/sonarqube/lib/bundled-plugins
networks:
  sonarqube-server-network: