LoginSignup
13
9

More than 3 years have passed since last update.

dockerでlaravelをインストールするまでにめちゃくちゃこけた話

Posted at

はじめに

なゆたです.
最近オンラインジャッジシステムを作ろうとしていたんですがルーティングを導入しようとして色々と面倒になったのでlaravelに頼ることにしました.
しかしインストールだけで山ほどこけたので軽くまとめていきたいと思います.

laravelがインストールできない

どうしてか.

composerがインストールがうまくいかない

まずcomposerがどうやったらインストールできるかがわからない.
Dockerを使ってLaravel開発環境構築
このブログを見ながらインストールしました.
Dockerfileのcomposerインストール部分は以下の通りです.

RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
RUN php -r "if (hash_file('sha384', 'composer-setup.php') === 'a5c698ffe4b8e849a443b120cd5ba38043260d5c4023dbf93e1558871f1f07f58274fc6f4c93bcfd858c6bd0775cd8d1') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
RUN php composer-setup.php
RUN php -r "unlink('composer-setup.php');"
RUN mv composer.phar /usr/local/bin/composer

phpのzipが入ってない

laravelをインストールしようとすると次のようなエラーが出ます.

configure: error: zip support requires ZLIB. Use --with-zlib-dir=<DIR> to specify prefix where ZLIB include and library are located

まぁ要するにzlibが入ってないよって怒られるわけですね.

zlibのインストール

zlibを入れます.

RUN apt-get install -y zlib1g-dev

phpのzipを入れるためのlibzipが入っていない

前の項目までやると次のエラーが出ます.

configure: error: Please reinstall the libzip distribution

要するにlibzipが入っていないようなのでlibzipを入れます.

RUN apt-get install -y libzip-dev

ここまですればあとはcomposerでlaravelをインストールするだけです.

最終的なDockerfile

FROM php:7.3-fpm
RUN apt-get update && apt-get -y upgrade

#zipを入れるための部分
RUN apt-get install -y zlib1g-dev && apt-get install -y libzip-dev
RUN docker-php-ext-install pdo_mysql zip

#composerのインストール
RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
RUN php -r "if (hash_file('sha384', 'composer-setup.php') === 'a5c698ffe4b8e849a443b120cd5ba38043260d5c4023dbf93e1558871f1f07f58274fc6f4c93bcfd858c6bd0775cd8d1') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
RUN php composer-setup.php
RUN php -r "unlink('composer-setup.php');"
RUN mv composer.phar /usr/local/bin/composer
ENV COMPOSER_ALLOW_SUPERUSER 1
ENV COMPOSER_HOME /composer
ENV PATH $PATH:/composer/vendor/bin


WORKDIR /var/www/html/laravel
RUN composer global require "laravel/installer"

終わりに

エラーログを読み飛ばしていたら大切な部分に気づかずにめっちゃ時間かかるので頑張ってきちんと読みましょう.
(もしくは大切な部分をきちんと読めるようになりましょう.)

13
9
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
13
9