Last active
March 5, 2025 10:09
-
-
Save a-yasui/de3bc881fd2d83bfcb5e092521700fce to your computer and use it in GitHub Desktop.
php/laravel and nodejs develop dockerfile
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# PHP/Laravel + NodeJS | |
# same as : https://zenn.dev/at_yasu/scraps/1de9de2597fdb7 | |
FROM node:23 as node | |
FROM composer:latest as composer | |
FROM php:8.3-apache | |
RUN apt-get update \ | |
&& apt-get install -y \ | |
git \ | |
zip \ | |
unzip \ | |
vim \ | |
libpq-dev \ | |
libonig-dev \ | |
libzip-dev \ | |
libpng-dev \ | |
libjpeg-dev \ | |
libfreetype-dev \ | |
libicu-dev \ | |
libcurl4-openssl-dev \ | |
imagemagick \ | |
&& docker-php-ext-configure gd --with-jpeg \ | |
&& docker-php-ext-install intl mbstring pdo_mysql bcmath gd curl zip \ | |
&& pecl install xdebug \ | |
&& apt-get clean \ | |
&& rm -rf /var/lib/apt/lists/* | |
# 設定ファイルをdockerコンテナ内のPHP、Apacheに読み込ませる | |
ADD php.ini /usr/local/etc/php/ | |
ADD 000-default.conf /etc/apache2/sites-enabled/ | |
# Composer Instaration | |
COPY --from=composer /usr/bin/composer /usr/bin/composer | |
# Npm Instaration | |
COPY --from=node /usr/local/include/node /usr/local/include/node | |
COPY --from=node /usr/local/bin/node /usr/local/bin/node | |
COPY --from=node /usr/local/lib /usr/local/lib | |
COPY --from=node /opt /opt | |
RUN ln -sf ../lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm \ | |
&& ln -sf ../lib/node_modules/npm/bin/npx-cli.js /usr/local/bin/npx \ | |
&& ln -sf /usr/local/bin/node /usr/local/bin/nodejs | |
## Yarn | |
RUN YARN_BIN_DIR=$(ls -d /opt/yarn-v*/bin | head -n1) && \ | |
ln -sf ${YARN_BIN_DIR}/yarn /usr/local/bin/yarn && \ | |
ln -sf ${YARN_BIN_DIR}/yarnpkg /usr/local/bin/yarnpkg | |
# Laravelで必要になるmodRewriteを有効化 | |
RUN cp /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled | |
RUN /bin/sh -c a2enmod rewrite | |
#コンテナ内に入った時のディレクトリを指定 | |
WORKDIR /var/www | |
EXPOSE 80 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment