LoginSignup
3
2

More than 5 years have passed since last update.

Laradockを使う時に気をつけること

Last updated at Posted at 2019-04-11

Laravelプロジェクトのローカル環境をdocker-composeで簡単に構築できる Laradock ですが、
複数プロジェクトで使おうとしたときや、予期せぬところでハマることがあったので注意点のメモです。

ちなみに初めてLaradockを使用したときはこちらの記事を参考にさせていただきました。
https://qiita.com/kamukiriri/items/73ff35fc7f9083ca68c1#補足2-ローカル開発環境としてlaradockを使用する

前提条件

Version

Laradock: 7.14

ファイル構成

https://laradock.io/getting-started/#A1
こっちのパターンで、Laravelプロジェクトの中にLaradockを置くときの想定です。

laravel/
 └ laradock/

気をつけること

以下に挙げていきます。

Laradockのディレクトリ名については参考記事でも言及されていますが、
イメージおよびコンテナ名とは連動していないのでリネームしなくても問題はなさそうです。

.envで設定しておくべきところ

env-example を .env にリネームして必要な項目を設定します。
(コメントアウト行はデフォルトの設定です)

/laravel/laradock/.env
### Paths #################################################
# DATA_PATH_HOST=~/.laradock/data
DATA_PATH_HOST=~/.laradock/my-laradock_data

### Docker compose files ##################################
# COMPOSE_PROJECT_NAME=laradock
COMPOSE_PROJECT_NAME=my-laradock

### NGINX #################################################
# NGINX_HOST_HTTP_PORT=80
# NGINX_HOST_HTTPS_PORT=443
NGINX_HOST_HTTP_PORT=8080
NGINX_HOST_HTTPS_PORT=4430

DATA_PATH_HOST
DBを使用する場合のストレージ。プロジェクトごとに分けた方が都合よさそう。

COMPOSE_PROJECT_NAME
ここで設定した名前がコンテナおよびイメージ名のプレフィックスになります。
複数プロジェクトでLaradockを利用する場合はこれをちゃんと設定しておかないと後で面倒なことに。
公式にも記載があります。

By default the containers that will be created have the current directory name as suffix (e.g. laradock_workspace_1). This can cause mixture of data inside the container volumes if you use laradock in multiple projects. In this case, either read the guide for multiple projects or change the variable COMPOSE_PROJECT_NAME to something unique like your project name.

NGINX_HOST_HTTP_PORT , NGINX_HOST_HTTPS_PORT
Apacheを使用する場合はそちらの設定を。
1つのプロジェクトならそのままでも良いかもしれませんが、複数プロジェクトのlocal環境を同時に立ち上げたい場合などは重複しないように変更する必要あり。

packagist.orgへの接続状況

これはかなり限定的な場面になりますが・・・
ちょうど新しいプロジェクトを作ろうとしていたときに直面して困ったので一応書いておきます。

2019/4/9に一時的に日本から(?) https://packagist.org/ (Composerが使用しているパッケージリポジトリ)に接続できなくなった時間帯がありました。




 
ComposerでLaravelをインストールしようとした時点で失敗していてこんな状況に。
$ composer diag
Checking platform settings: OK
Checking git settings: OK
Checking http connectivity to packagist: 
The "http://repo.packagist.org/packages.json" file could not be downloaded: failed to open stream: Operation timed out
Retrying with degraded mode, check https://getcomposer.org/doc/articles/troubleshooting.md#degraded-mode for more info
[Composer\Downloader\TransportException] The "http://repo.packagist.org/packages.json" file could not be downloaded: php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known
failed to open stream: php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known
Checking https connectivity to packagist: [Composer\Downloader\TransportException] The "https://repo.packagist.org/packages.json" file could not be downloaded: failed to open stream: Operation timed out

これに関しては参照先リポジトリを packagist.jp に変更することで解決しました。
https://qiita.com/Hiraku/items/51961aa49f7a2922011d

 
ですがLaradock内でもworkspaceコンテナを作るのにComposerを使用していて、同じようにエラーに。。😩
何度 docker-compose up -d nginx ってしてもうまくいかないので悩みましたが、ここが原因でした。
(workspaceコンテナはデフォルトで .env の WORKSPACE_COMPOSER_GLOBAL_INSTALL がtrueになってるので、なにもしなければ同時に立ち上がるようになっています。)

/laravel/laradock/workspace/Dockerfile
###########################################################################
# Composer:
###########################################################################

USER root

# Add the composer.json
COPY ./composer.json /home/laradock/.composer/composer.json

# Add the auth.json for magento 2 credentials
COPY ./auth.json /home/laradock/.composer/auth.json

# Make sure that ~/.composer belongs to laradock
RUN chown -R laradock:laradock /home/laradock/.composer

USER laradock

# Check if global install need to be ran
ARG COMPOSER_GLOBAL_INSTALL=false
ENV COMPOSER_GLOBAL_INSTALL ${COMPOSER_GLOBAL_INSTALL}

RUN if [ ${COMPOSER_GLOBAL_INSTALL} = true ]; then \
    # run the install
    composer global install \
;fi

で、 .env に WORKSPACE_COMPOSER_REPO_PACKAGIST っていうのがあったのでこれを https://packagist.jp にしてみたりしましたがやっぱりだめでした。
その日は諦めて帰ったら次の日 packagist.org につながるようになっていたのでよかったです。

・・・なにか良い対策法があれば知りたいです🙄

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2