2018年9月28日金曜日

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

DockerでRundeck3.0.6とPostgreSQL10.4のコンテナを構築する Rundeckはオープンソースのジョブスケジューラです。ジョブ実行の自動化を行うことができます。

〇Rundeckの画面


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

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:postgresql://rundeckdb/rundeck#' /opt/rundeck/server/config/rundeck-config.properties
  echo 'dataSource.username = postgres' >> /opt/rundeck/server/config/rundeck-config.properties
  echo 'dataSource.password = rundeck' >> /opt/rundeck/server/config/rundeck-config.properties
  echo 'dataSource.driverClassName = org.postgresql.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とPostgreSQLのコンテナを構築・実行します。
docker-compose up -d

docker-compose.yml
version: "2"
services:
  rundeck:
    image: rundeck-pg
    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: postgres:10.4-alpine
    container_name: "rundeck-db"
    ports:
      - "5432:5432"
    volumes:
      - "rundeckdb-data:/var/lib/postgresql/data"
    environment:
        POSTGRES_DB: rundeck
        POSTGRES_PASSWORD: rundeck
volumes:
  rundeckdb-data:
    driver: local
  rundeck-data:
    driver: local

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

0 件のコメント:

コメントを投稿