DockerでApache+PHP+CAKEPHP1.3+PostgreSQLを構築しました。
古い。古すぎる。
お客様がお金を出せないとこんな骨董品まで対応します。
まぁ仕方ないですね。
Dockerなんて知らない!
DLから!という人は前の記事から読んでいただけますと!
Docker設定
docker-compose.yml
version: '2'
services:
web:
container_name: apache001
build: ./web
- "80:80"
volumes:
- ../:/var/www/html:Z
db:
image: postgres
container_name: my-db
build: ./db
- "5432:5432"
environment:
POSTGRES_DATABASE: "dbname"
POSTGRES_USER: "dbuser"
POSTGRES_PASSWORD: "dbpass"
volumes:
- ./db/init:/docker-entrypoint-initdb.d
web/Dockerfile
# php-pgsql
RUN set -ex apk --no-cache add postgresql-dev libpq-dev
RUN apt-get update && apt-get install -y libpq-dev && \
docker-php-ext-install pgsql pdo pdo_pgsql mbstring
# mod_rewite有効
RUN a2enmod rewrite
ADD ./httpd.conf /etc/apache2/apache2.conf
# tmp
RUN mkdir -p /var/www/html/sys/app/tmp
RUN chmod 777 -R /var/www/html/sys/app/tmp
『httpd.conf』はDocumentRootを直したくらいなので省略
web/php.ini
output_buffering = Off
output_handler = none
default_charset = UTF-8
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = auto
mbstring.http_output = UTF-8
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = none
db/Dockerfile
FROM ubuntu:14.04
RUN apt-get update && \
apt-get install -y -q postgresql-9.3 libpq-dev \
postgresql-client-9.3 postgresql-contrib-9.3 && \
rm -rf /var/lib/apt/lists/*
USER postgres
RUN /etc/init.d/postgresql start &&\
psql --command "CREATE DATABASE \
docker WITH OWNER docker TEMPLATE template0 ENCODING 'UTF8';" &&\
EXPOSE 5432
CMD [ \
"config_file=/etc/postgresql/9.3/main/postgresql.conf"]
課題
Docker + Postgresはなんだかんだ起動時にSQLを流せるはずなのですが、ちょっとそのやりかたがわかりませんでしたw
下記とか参考にしたのですができずに断念・・・。
まぁデータ投入は手動でも可能なので、気が向いたら再挑戦しよーっと。
- 作者: Adrian Mouat,Sky株式会社玉川竜司
- 出版社/メーカー: オライリージャパン
- 発売日: 2016/08/17
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る