Windows の Git Bash から Docker や Docker Compose をうまく動かすための .bashrc

スポンサードリンク


ポイント

  • コマンドの前に winpty をつければ動くようになる。例えば、 winpty docker ... など。
  • winpty を毎回つけるのは手間なため、 .bashrc などに alias を定義すると便利
“Windows の Git Bash から Docker や Docker Compose をうまく動かすための .bashrc” の続きを読む

Laravel 5.5 “完全に理解した” 。5.2 の中級者向けタスクリストを 5.5 でやりきるためのページ

はじめに

を座右に置きながら、 Laravel 5.5 で実践したときの記録をすべて載せました。上記ページと本投稿に沿って実践すれば、 Laravel 5.5 での中級者向けタスクリストを作ることができます。

最終の完全なソースコードは次のページから取得可能です。

早速、始めていきます。

“Laravel 5.5 “完全に理解した” 。5.2 の中級者向けタスクリストを 5.5 でやりきるためのページ” の続きを読む

Nginx + PHP-FPM で unix ドメインソケットを使ったシンプルな docker-compose.yml を書きました。2

ポイント

  • Docker イメージは、 alpine を使わない。
  • Nginx の実行ユーザと PHP-FPM の listen.owner 、 listen.group とを一致させる。
  • Nginx で fastcgi_pass に指定するファイルのディレクトリと、 PHP-FPM で listen に指定するファイルのディレクトリとを、 Docker Compose のトップレベルで定義する名前付き volume で共有する。

“Nginx + PHP-FPM で unix ドメインソケットを使ったシンプルな docker-compose.yml を書きました。2” の続きを読む

Dockerfile でタイムゾーン設定するメモ

まとめ

FROM debian:stretch-slim なイメージはこれで OK でした。
例えば、今回設定したのは次です。

  • php:apache
  • mysql:latest
FROM mysql:latest

ARG TZ=UTC
ENV TZ ${TZ}
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

COPY ./config-file.cnf /etc/mysql/conf.d/

${TZ} は、docker-compose.yml で定義しました。args と environment です。
${WORKSPACE_TIMEZONE} は、.env ファイルで定義しています。

services:
  php_apache:
    build:
      context: ./php_apache
      args:
        TZ: ${WORKSPACE_TIMEZONE}
    environment:
      - TZ=${WORKSPACE_TIMEZONE}
... 略 ...

“Dockerfile でタイムゾーン設定するメモ” の続きを読む

PHP GD をインストールするための Dockerfile の少し複雑な内容メモ

GD を使える php:5.6-apache の Dockerfile 内容

FROM php:5.6-apache
RUN  apt-get update && apt-get install -y \
    libfreetype6-dev \
    libjpeg62-turbo-dev \
    libpng-dev \
    && docker-php-ext-install gd pdo_mysql mysqli mbstring \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/* \
    && a2enmod rewrite
COPY ./php.ini /usr/local/etc/php/
COPY ./000-default.conf /etc/apache2/sites-available/000-default.conf

ポイント

“PHP GD をインストールするための Dockerfile の少し複雑な内容メモ” の続きを読む

Docker Compose で気軽に Apache PHP 環境を構築するメモ

ファイルの内容

  • 適当なフォルダに docker-compose.yml を作成
  • docker-compose.yml を置いたフォルダに、data/var/www/html フォルダを作る
  • data/var/www/html フォルダに HTML や PHP ファイルを置く
  • コンテナ起動後、ウェブブラウザで http://localhost 等にアクセスする

“Docker Compose で気軽に Apache PHP 環境を構築するメモ” の続きを読む

ローカル開発環境の古い MySQL、バージョン 5.5 を Docker で再現できるかやってみましたらできました♪

はじめに

  • 開発のために MySQL 5.5 を手元の Windows にインストールしなければならない。
  • はっきりいって嫌だ。
    • Windows 起動時に自動的に MySQL も起動してしまったり。
    • Windows のポートも使用されてしまったり。
  • Docker で再現できるのでは?
    • Nginx を Docker で使ったとき、http://localhost でウェブページにアクセスできた。
    • Nginx を Docker で使ったとき、docker run 時、-p 8080:80 などとすれば、http://localhost:8080 でアクセスできた。
    • つまり、ホスト (Docker をインストールしたマシン) からコンテナに対して、localhost と指定したポート番号でアクセスできるということ。
  • A5:SQL Mk-2 – フリーの汎用SQL開発ツール/ER図ツール .. 松原正和 からアクセスできるか、やってみる。

“ローカル開発環境の古い MySQL、バージョン 5.5 を Docker で再現できるかやってみましたらできました♪” の続きを読む

【Docker】volumes で永続化した場合、コンテナが消えようがイメージが消えようが、永続化したファイルは残る

永続化関連のまとめと遭遇したトラブル

  • コンテナを削除 (docker rm や docker-compose down など) しても、volumes のホスト側のファイルは残る。
  • MySQL の /docker-entrypoint-initdb.d/ に置いた SQL ファイルは、コンテナを作成 (1回目) してコンテナを削除して、コンテナを作成 (2回目) した場合、1 回目しか実行されない。
    • 1 回目で永続化されたファイルが出来上がり、これは削除されない。すると 2 回目では永続化された DB ファイルがあるため、実行されないのであろう。
    • したがって、開発中などの場合、永続化の設定をした状態で 2 回目のコンテナを作成する前に /docker-entrypoint-initdb.d/ の SQL を編集してもその内容はコンテナに反映されない。
    • 永続化したファイルを消せば、コンテナに反映される。

“【Docker】volumes で永続化した場合、コンテナが消えようがイメージが消えようが、永続化したファイルは残る” の続きを読む

【Docker】MySQL のコンテナ A に、MySQL のコンテナ B からシンプルに接続する方法

はじめに

Docker さえあれば、MySQL クライアントが用意できる、それもたった 1 行のコマンドで。

これが実現できましたのでノートいたします。

“【Docker】MySQL のコンテナ A に、MySQL のコンテナ B からシンプルに接続する方法” の続きを読む

【Docker】Nginx + PHP-FPM のシンプルな docker-compose.yml のポイントをノートしました

はじめに・環境

意外なことに注意しなければならない点があったため、メモいたします。

$ SW_VERS
ProductName:	Mac OS X
ProductVersion:	10.12.6
BuildVersion:	16G1510
$
$ docker --version
Docker version 18.06.0-ce, build 0ffa825
$ docker-compose --version
docker-compose version 1.22.0, build f46880f
$

Nginx + PHP-FPM のシンプルな docker-compose.yml のポイント

  • Nginx コンテナの volumes に HTML を置くディレクトリを指定しないと、HTML を処理してブラウザで表示できない。
  • 補足すると、PHP コンテナの volumes に PHP を置くディレクトリを指定してここに HTML ファイルを置いたとしても、その HTML ファイルはブラウザで表示できない。
  • 逆も然り。PHP コンテナの volumes に PHP を置くディレクトリを指定しないと、PHP を処理してブラウザで表示できない。
  • それぞれのコンテナごとに、必要な volume を省略しないで明確に記述すること。

“【Docker】Nginx + PHP-FPM のシンプルな docker-compose.yml のポイントをノートしました” の続きを読む