由于想要构建AWS CodeBuild Laravel 9,因此需要创建Docker镜像
由于想要构建AWS CodeBuild Laravel 9,所以需要创建一个docker镜像。
动机
在AWS CodeBuild可使用的官方映像中,没有与Laravel 9所需的PHP版本相匹配的选项。
在Laravel 9中,需要8.0.2或更高版本,因此我自己准备了Docker镜像。
Dockerfile 原生地以中文进行改写。只需要一个选项:
镜像文件
# ベースイメージは、AmazonLinux2
FROM amazonlinux:2
# remiがepelを求めるのでインストール
RUN amazon-linux-extras install epel
# remiリポジトリをインストール
RUN yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm
# nodejsのインストール作業に必要なコマンドをインストール
RUN yum install -y curl sudo
# nodejsのセットアップファイルをダウンロードして実行(nodejsのリポジトリを追加)
RUN curl -sL https://rpm.nodesource.com/setup_14.x | sudo bash -
# nodejsをインストール
RUN yum install -y --enablerepo=nodesource nodejs
# インストール済みのPHPを全て削除
RUN yum remove php*
# PHP80と拡張モジュールをインストール
RUN yum install -y --enablerepo=epel,remi,remi-php80 php80 php80-php-mbstring php80-php-mysqlnd php80-php-gd php80-php-xml php80-php-fpm php80-php-pecl-zip
# php80にパスを通す
RUN alternatives --install /usr/bin/php php /usr/bin/php80 1
# composerをインストール
# https://getcomposer.org/download/を確認して適宜変更する
RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
RUN php -r "if (hash_file('sha384', 'composer-setup.php') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae') { 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
# composerにパスを通す
RUN echo "export PATH=~/.config/composer/vendor/bin:$PATH" >> ~/.bash_profile