【ColdFusion】Dockerを使って簡単環境構築

Dockerを使ってあれこれやってみたかったので、過去の記事の応用編を…。

【ColdFusion2018】Dockerを使って簡単に使ってみる

構築する環境

コマンドを叩くだけで以下の環境を構築するのが目的です。

* ColdFusion 2018
* PostgreSQL

今回のサンプルは初回起動時にColdFusion側でデータソースの設定を行い、
PostgreSQL側ではテーブルを作成する感じにしています。
Dockerfileを利用したりすればもっと色々とできそう…。

フォルダ構成

以下のようなフォルダ構成にしています。

ColdFusion2018_Docker
│ ├ coldfusion.env … ColdFusion用の設定ファイル
│ └ Docker-compose.yml

├─html
│ ├ index.cfm … サンプルコード
│ └ setupColdFusion.cfm … 初回起動時のセットアップ用コード

└─initdb
 └ setup.sql … 初回起動時のセットアップ用クエリ

各種設定ファイル

Docker-compose.yml

特筆すべきことは特にないですね…。

version: "3" 
services:
    coldfusion: 
        container_name: DevCF2018
        image: eaps-docker-coldfusion.bintray.io/cf/coldfusion:latest
        depends_on:
        - db
        ports:
        - "8500:8500"
        volumes:
        - "./html:/app"
        env_file:
        - coldfusion.env
        networks: 
        - webnet
    db:
        container_name: DevPostgres
        image: postgres:latest
        ports:
        - "5432:5432"
        volumes:
        - dbdata:/var/lib/postgresql/data
        - ./initdb:/docker-entrypoint-initdb.d
        environment:
          POSTGRES_HOST_AUTH_METHOD: trust
          POSTGRES_USER: postgres
          POSTGRES_PASSWORD: postgres
          POSTGRES_DB: test_db
        networks:
        - webnet
volumes:
    dbdata:
 
networks:
    webnet:

coldfusion.env

セットアップ実行時のコードを3行目で指定しています。
あと英語読めないので日本語設定にしています。

acceptEULA=YES
password=ColdFusion123
setupScript=setupColdFusion.cfm
language=ja

setupColdFusion.cfm

Administrator APIを利用して、データソース設定をしているだけです。

<cfscript>
    // // Login is always required. This example uses two lines of code.
    adminObj = createObject("component","CFIDE.adminapi.administrator");
    adminObj.login("ColdFusion123"); //CF Admin password
    // PostgreSQLのデータソース設定
    datasource = createObject("component", "CFIDE.adminapi.datasource");
    datasource.setPostGreSQL(name="SamplePostgresDB",
                             host="host.docker.internal",
                             database="test_db",
                             username="postgres",
                             password="postgres");
</cfscript>

後は起動するだけ

docker-compose up -d

実行後にColdFusion Administratorにアクセスし、
データソースを確認すれば「SamplePostgresDB」が追加されています。

まだまだDockerでわからないことだらけなので変更すべき点はいくらでもありそう…。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です