一直在关注本教程,并在需要时进行了一些更改:https://medium.com/@pierangelo1982/dockerize-an-existing-laravel-application-with-docker-compose-a45eb7956cbd
在运行 docker-composer build 和 docker-composer up 后,所有迁移都成功运行,我收到一条消息,说应用程序正在 http://0.0.0.0:8000 上运行,将鼠标悬停在该 url 或教程中指定的 URL 上没有显示任何内容。
>这是我的 docker 文件
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
我的搬运工-compose.yaml文件
version: '2'
services:
app:
build: .
ports:
- '8009:8000'
volumes:
- .:/app
env_file: .env
working_dir: /app
command: bash -c 'composer install && 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=1
- MYSQL_DATABASE=posts
- MYSQL_PASSWORD=1
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: 1
和我的 .env 文件
APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:oD3DGqKdE7ne91FGu7YJzAJo721v56uVjAZGRGT6VNk=
APP_DEBUG=true
APP_URL=http://posts.test
LOG_CHANNEL=stack
LOG_LEVEL=debug
DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_DATABASE=posts
DB_USERNAME=root
DB_PASSWORD=1
BROADCAST_DRIVER=log
CACHE_DRIVER=file
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120
MEMCACHED_HOST=127.0.0.1
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_MAILER=smtp
MAIL_HOST=mailhog
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=null
MAIL_FROM_NAME="${APP_NAME}"
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
现在不太确定发生了什么,因为看起来一切正常,但我在指定的端口上看不到任何东西。
答案 0 :(得分:0)
您好,我认为您应该检查您的端口转发配置。在容器内,您使用命令启动 Web 服务器 CMD php artisan serve --host=0.0.0.0 --port=8181 然后我没有看到您在 docker-compose.yaml 中的哪个位置将此内部端口 8181 转发到外部机器主机端口 8000