2018年7月16日月曜日

DockerでRundeckとMariaDB10.3のコンテナを構築する

Rundeckはオープンソースのジョブスケジューラです。

〇Rundeckの画面


〇構築方法
1. 以下のコマンドを実行して、Dockerfileとstart.shからrundeckのイメージの作成します。
docker build -t rundeck .

Dockerfile
FROM alpine:3.7
RUN  apk update \
  && apk add --no-cache openjdk8 \
  && rm -rf /var/cache/apk/* \
  && mkdir -p /opt/rundeck \
  && wget http://dl.bintray.com/rundeck/rundeck-maven/rundeck-launcher-2.11.4.jar -P /opt/rundeck 
COPY ./start.sh / 
RUN chmod +x ./start.sh 
EXPOSE 4440
VOLUME /opt/rundeck
CMD /start.sh

start.sh
#!/bin/sh
cd /opt/rundeck
if [ ! -f /opt/rundeck/etc/profile ]; then
  /usr/bin/java -Xmx1024m -jar rundeck-launcher-2.11.4.jar --installonly
  sed -i -e 's#grails.serverURL=.*4440#grails.serverURL='$SERVER_URL'#' /opt/rundeck/server/config/rundeck-config.properties
  sed -i -e 's#dataSource.url = jdbc:h2:file:/opt/rundeck/server/data/grailsdb;MVCC=true#dataSource.url = jdbc:mysql://rundeckdb/rundeck?autoReconnect=true#' /opt/rundeck/server/config/rundeck-config.properties
  echo 'dataSource.username = root' >> /opt/rundeck/server/config/rundeck-config.properties
  echo 'dataSource.password = rundeck' >> /opt/rundeck/server/config/rundeck-config.properties
fi
/usr/bin/java -Xmx2048m -jar rundeck-launcher-2.11.4.jar -b /opt/rundeck

2.docker-compose.ymlのSERVER_URL環境変数を自分の環境に合わせたのち、以下のコマンドを実行してRundeckとMariaDBのコンテナを構築・実行します。
docker-compose up -d

docker-compose.yml
version: "2"
services:
  rundeck:
    image: rundeck
    container_name: "rundeck"
    volumes:
      - "rundeck-data:/opt/rundeck"
    environment:
      SERVER_URL: http://<Dockerホスト名またはIP>:4440
    ports:
      - "4440:4440"
    depends_on:
      - rundeckdb
  rundeckdb:
    image: mariadb:10.3
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    container_name: "rundeck-db"
    volumes:
      - "rundeckdb-data:/var/lib/mysql"
    ports:
      - "3306:3306"
    environment:
        MYSQL_DATABASE: rundeck
        MYSQL_ROOT_PASSWORD: rundeck
volumes:
  rundeckdb-data:
    driver: local
  rundeck-data:
    driver: local

3.ブラウザからhttp://<Dockerホスト名またはIP>:4440にアクセスします。

0 件のコメント:

コメントを投稿