TODOList-Laravel / Dockerfile
kenken999's picture
;;;
b2503cb verified
# Node.js ベース(n8n 対応環境)+ PHP 環境
FROM node:18.17.0
# Spaces対応ポート公開(7860のみ)
EXPOSE 7860
# 環境変数(n8n用:未使用ならそのままでOK)
ENV N8N_PORT=7860
ENV WEBHOOK_URL=https://kenken999-nodex-n8n-domain.hf.space/
ENV VUE_APP_URL_BASE_API=https://kenken999-nodex-n8n-domain.hf.space/
# --- n8n をグローバルインストール(未使用でもOK) ---
RUN npm install -g n8n
# --- PHP + Laravel 環境構築 ---
RUN apt-get update && apt-get install -y \
php \
php-cli \
php-mbstring \
php-xml \
php-sqlite3 \
php-mysql \
php-curl \
php-zip \
php-bcmath \
unzip \
git \
wget \
curl \
sqlite3 \
libsqlite3-dev
# Composerインストール
RUN curl -sS https://getcomposer.org/installer | php && \
mv composer.phar /usr/local/bin/composer
# Laravel用の作業ディレクトリ
WORKDIR /app
COPY . /app
# .env 設定(SQLite使用)
RUN cp .env.example .env
# Composer install & Laravel初期化
RUN composer install --no-interaction --prefer-dist --optimize-autoloader \
&& php artisan key:generate \
&& mkdir -p database && touch database/database.sqlite \
&& chmod -R 777 database storage bootstrap/cache \
&& php artisan migrate --force || true
# Git設定(n8nベース環境なのでグローバルでOK)
RUN git config --global user.email "[email protected]"
# /app ディレクトリ全体に書き込み権限を付与
RUN chmod -R 777 /app
# entrypoint.sh をコピーして実行権限を付与
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
# Laravel 起動(Spaces対応ポート7860で起動)
CMD ["/entrypoint.sh"]
# n8n を代わりに起動したい場合は以下に切り替え可能:
# CMD ["n8n", "start"]