以下是我尝试过的事情,我做错了什么吗?
步骤1。在本地主机上创建一个简单的laravel应用。
composer create-project --prefer-dist laravel/laravel laravel-app 5.6
步骤2。创建docker-compose.yml
version: '3'
services:
php:
image: php:7-fpm
ports:
- "3021:8000"
volumes:
- ./laravel-app:/app
composer:
image: composer:latest
volumes:
- ./laravel-app:/app
working_dir: /app
command: ["install","php artisan serve --host=0.0.0.0"]
depends_on:
- php
在那之后,我运行 docker-compose up --force-recreate -d 并在浏览器中访问 127.0.0.1:3021 ,但我什么也没得到。
>然后我运行docker-composer日志,它向我显示此错误消息:
Invalid argument php artisan serve --host=0.0.0.0. Use "composer require php artisan serve --host=0.0.0.0" instead to add packages to your composer.json.
如何解决此问题?
答案 0 :(得分:1)
您正在混合命令。 Composer不“服务”。 Php在dev服务器中有一个内置服务器可以“服务”。
您可以在此处了解更多信息:https://laravel.com/docs/4.2/quick
要真正启动和运行Laravel,请执行以下操作:
1-在laravel-app
文件夹中运行此文件:composer install
2-创建具有以下内容的Dockerfile:
FROM php:7
RUN apt-get update -y && apt-get install -y libmcrypt-dev openssl
RUN docker-php-ext-install pdo mcrypt mbstring
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
WORKDIR /app
COPY . /app
CMD php artisan serve --host=0.0.0.0 --port=8000
EXPOSE 8000
3-构建您的docker映像:docker build -t my-laravel-image .
4-最后替换您的docker-compose的内容:
version: '3'
services:
web:
image: my-laravel-image
ports:
- 3021:8000
volumes:
- ./laravel-app:/app
可以在这里找到更完整的教程(不是我的):https://www.techiediaries.com/docker-compose-laravel/
编辑:
要使用正式的撰写图片,您可以执行以下操作:
version: '3'
services:
composer:
image: composer:latest
working_dir: /app
entrypoint: php artisan serve --host=0.0.0.0
depends_on:
- php
volumes:
- ./laravel-app:/app
ports:
- "3021:8000"
确保./laravel-app
包含laravel项目。否则,这将无法正常工作!
答案 1 :(得分:0)
在Laravel应用的主文件夹中,创建一个名为Dockerfile的文件并插入以下代码:
FROM php:7
RUN apt-get update -y && apt-get install -y openssl zip unzip git
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
RUN docker-php-ext-install pdo pdo_mysql
WORKDIR /app
COPY . /app
RUN composer install
CMD php artisan serve --host=0.0.0.0 --port=8181
EXPOSE 8181
在Dockerfile的同一主文件夹中,创建一个名为docker-compose.yml的文件,并插入以下代码:
version: '2'
services:
app:
build: .
ports:
- "8009:8000"
volumes:
- .:/app
env_file: .env
working_dir: /app
command: bash -c 'php artisan migrate && php artisan serve --host 0.0.0.0'
depends_on:
- db
links:
- db
db:
image: "mysql:5.7"
environment:
- MYSQL_ROOT_PASSWORD=yourpassword
- MYSQL_DATABASE=yourdbname
- MYSQL_USER=root
- MYSQL_PASSWORD=yourpassword
volumes:
- ./data/:/var/lib/mysql
ports:
- "3306:3306"
phpmyadmin:
depends_on:
- db
image: phpmyadmin/phpmyadmin
restart: always
ports:
- 8090:80
environment:
PMA_HOST: db
MYSQL_ROOT_PASSWORD: yourpassword
打开终端命令行,进入laravel文件夹,然后启动以下命令:
docker.compose build
docker-compose up -d
如果需要创建和迁移数据库,或使用其他命令,请以这种方式启动Laravel命令:
docker-compose运行应用程序php artisan 该应用程序将通过以下地址提供:http://0.0.0.0:8009