2018年9月29日土曜日

DockerでRundeck3.0.6とMySQL5.7のコンテナを構築する

Rundeckはオープンソースのジョブスケジューラです。ジョブ実行の自動化を行うことができます。

〇Rundeckの画面


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

Dockerfile
FROM alpine:3.8
RUN  apk update \
  && apk add --no-cache openjdk8 \
  && rm -rf /var/cache/apk/* \
  && mkdir -p /opt/rundeck \
  && wget https://dl.bintray.com/rundeck/rundeck-maven/rundeck-3.0.6-20180917.war -O /opt/rundeck/rundeck-3.0.6.war
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-3.0.6.war --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
  echo 'dataSource.driverClassName=com.mysql.jdbc.Driver' >> /opt/rundeck/server/config/rundeck-config.properties
fi
/usr/bin/java -Xmx2048m -jar rundeck-3.0.6.war -b /opt/rundeck

2.docker-compose.ymlのSERVER_URL環境変数を自分の環境に合わせたのち、以下のコマンドを実行してRundeckとMySQLのコンテナを構築・実行します。
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://192.168.1.250:4440
    ports:
      - "4440:4440"
    depends_on:
      - rundeckdb
  rundeckdb:
    image: mysql:5.7
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    container_name: "rundeck-db"
    volumes:
      - "rundeckdb-data:/var/lib/mysql"
    environment:
        MYSQL_DATABASE: rundeck
        MYSQL_ROOT_PASSWORD: rundeck
volumes:
  rundeckdb-data:
    driver: local
  rundeck-data:
    driver: local

3.ブラウザからhttp://<Dockerホスト名またはIP>:4440にアクセスします。デフォルトユーザ/パスワードはadmin/adminです。

0 件のコメント:

コメントを投稿