#バドシス 〜 日々のことを続く限り書いてみようと思って 〜

頑張って日々のことを書いていこうと思います。

DockerでApache+PHP+CAKEPHP1.3+PostgreSQLを構築しました。

古い。古すぎる。

お客様がお金を出せないとこんな骨董品まで対応します。

まぁ仕方ないですね。

 

Dockerなんて知らない!

DLから!という人は前の記事から読んでいただけますと!

 

mizominton.hatenablog.jp

 

 

 

 

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"
POSTGRES_INITDB_ARGS: "--encoding=UTF-8 --locale=ja_JP.UTF-8"
volumes:
- ./db/init:/docker-entrypoint-initdb.d

 

web/Dockerfile

FROM php:5.6-apache
# 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
COPY php.ini /usr/local/etc/php/
# 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 USER docker WITH SUPERUSER PASSWORD 'docker';" &&\
psql --command "CREATE DATABASE \
docker WITH OWNER docker TEMPLATE template0 ENCODING 'UTF8';" &&\
echo "host all all 0.0.0.0/0 md5" >> /etc/postgresql/9.3/main/pg_hba.conf &&\
echo "listen_addresses='*'" >> /etc/postgresql/9.3/main/postgresql.conf

EXPOSE 5432
VOLUME ["/etc/postgresql", "/var/log/postgresql", "/var/lib/postgresql"]

CMD [ \
"/usr/lib/postgresql/9.3/bin/postgres", "-D", \
"/var/lib/postgresql/9.3/main", "-c", \
"config_file=/etc/postgresql/9.3/main/postgresql.conf"]

課題

Docker + Postgresはなんだかんだ起動時にSQLを流せるはずなのですが、ちょっとそのやりかたがわかりませんでしたw

 

下記とか参考にしたのですができずに断念・・・。

まぁデータ投入は手動でも可能なので、気が向いたら再挑戦しよーっと。

 

qiita.com

 

 

Docker

Docker