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

スポンサードリンク


ポイント

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

Dokcer 環境で、vue init したプロジェクトで npm run dev したときにウェブブラウザから確認するときにできず、ハマった問題を解決した方法

解決方法

  • host を localhost から 0.0.0.0 へと修正する。

config/index.js

     proxyTable: {},
 
     // Various Dev Server settings
-    host: 'localhost', // can be overwritten by process.env.HOST
+    host: '0.0.0.0', // can be overwritten by process.env.HOST
     port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
     autoOpenBrowser: false,
     errorOverlay: true,
“Dokcer 環境で、vue init したプロジェクトで npm run dev したときにウェブブラウザから確認するときにできず、ハマった問題を解決した方法” の続きを読む

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” の続きを読む

Docker の nginx:latest (1.15.5) で SSL/TLS を使えるようにする最低限の Dockerfile を作りました

TLS/SSL で接続できる最低限の Nginx Dockerfile

FROM nginx:latest

RUN apt-get update && apt-get install -y \
    openssl \
    ssl-cert \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

COPY ./conf.d/ssl.conf /etc/nginx/conf.d/
server {
    listen       443 ssl;
    server_name  localhost;

    ssl_certificate      /etc/ssl/certs/ssl-cert-snakeoil.pem;
    ssl_certificate_key  /etc/ssl/private/ssl-cert-snakeoil.key;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
}

“Docker の nginx:latest (1.15.5) で SSL/TLS を使えるようにする最低限の Dockerfile を作りました” の続きを読む

Docker を使って、Composer をインストールせずに済ませる方法

# Composer の情報を表示
docker run --rm -it -v $PWD:/app composer:latest composer

# Comoser の実行場所がホストの指定場所となっているかを、共有場所の一覧を表示することで確認
docker run --rm -it -v $PWD:/app composer:latest ls -al

“Docker を使って、Composer をインストールせずに済ませる方法” の続きを読む

【Docker Compose】build 時ではなく、run 時に設定ファイルに環境変数を埋め込む方法メモ

はじめに

php:7.2-apache をビルドするときに、 DocumentRoot を設定していました。特に疑問に感じていませんでしたけれどもあるとき、さまざまな Docker イメージを見ていると設定は build 時ではなく、 run 時に環境変数で設定していることに気が付きました。

DocumentRoot も run 時に設定したいと思いました。

そうするためには、次の手順で実現できると思いました。

  1. Dockerfile で行っていた設定ファイルの COPY を、不要ならやめる。
  2. docker-compose run 時に volumes で設定ファイルのディレクトリを共有することでコンテナに設定ファイルを渡してやる。
  3. コンテナに渡す設定ファイルの必要項目を変数化して run 時に埋め込む。

上記の方法のうち、 1. と 2. は簡単です。 3. が難しかったです><。

今回、応急処置的な一時しのぎ的なワークアラウンドではありますけれども、汎用的で Linux コマンドの勉強になりましたので、解決するまでの道筋を順番に記録に残していこうと思います。

“【Docker Compose】build 時ではなく、run 時に設定ファイルに環境変数を埋め込む方法メモ” の続きを読む

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 でタイムゾーン設定するメモ” の続きを読む

Docker の php:apache に、Composer を使えるようにする Dockerfile を作る

まとめ。Composer が使える Docker の php:apache の Dockerfile

From php:apache
RUN apt-get update && apt-get install -y \
    unzip \
    zlib1g-dev \
    && docker-php-ext-install \
    zip \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*
RUN curl -s http://getcomposer.org/installer | php && \
    mv composer.phar /usr/local/bin/composer

これが最低限必要なものを追加した Dockerfile と思いますが、ちょっと及び腰で念の為という気持ちで、利便性や、参考ページにあったものも一応追加したものが次となります。

  • git はインストールしなくても使えるが入れた。
  • echo "export PATH=${PATH}:/var/www/vendor/bin" >> ~/.bashrc && \ も無くてもよいと思う (未検証) が、一応入れた。
From php:apache
RUN apt-get update && apt-get install -y \
    git \
    unzip \
    zlib1g-dev \
    && docker-php-ext-install \
    zip \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*
RUN curl -s http://getcomposer.org/installer | php && \
    echo "export PATH=${PATH}:/var/www/vendor/bin" >> ~/.bashrc && \
    mv composer.phar /usr/local/bin/composer

“Docker の php:apache に、Composer を使えるようにする Dockerfile を作る” の続きを読む

Laravel 5.7 をインストールするのに必要な PHP 拡張は Docker の php:7.2-apache に含まれていました。

Laravel 5.7 の求める PHP 拡張

には次のようにありました。

“Laravel 5.7 をインストールするのに必要な PHP 拡張は Docker の php:7.2-apache に含まれていました。” の続きを読む