php 如何在Docker容器中访问正在运行的Laravel项目?

kkih6yb8  于 2023-06-04  发布在  PHP
关注(0)|答案(1)|浏览(265)

我有一个Docker容器,在端口80上运行PHP,Apache,Composer和Laravel。在这个容器中,它在端口8000上运行一个laravel应用程序。此应用程序位于/var/www.我已经在Dockerfile中公开了端口,并在docker-compose.yml中绑定了它们。我是PHP和laravel的初学者,所以我不知道发生了什么。
Dockerfile

FROM php:8.2-apache

WORKDIR /var/www/html

RUN docker-php-ext-install mysqli && docker-php-ext-enable mysqli

RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

RUN apt-get update && apt-get install -y git curl zip unzip libzip-dev

RUN composer global require laravel/installer

ENV PATH="/root/.composer/vendor/bin:${PATH}"

RUN apt-get update && apt-get upgrade -y

RUN echo 'alias run="php artisan serve"' >> ~/.bashrc

EXPOSE 80 8000

docker-compose.yml

version: '3'

services:

  dw2_apache_php:
    build: .
    container_name: dw2_apache_php
    working_dir: /var/www/
    volumes:
      - .:/var/www
    ports:
      - 80:80
      - 8000:8000

我期望当我暴露端口并绑定它们时,它会起作用。

k2arahey

k2arahey1#

当你想运行你的docker容器时,你需要将应用运行的端口Map到你公开的端口。
如果运行localhost,我通常会这样做

docker run -p 3000:8080 IMAGE_ID

3000表示您将在浏览器中输入的端口
8080表示您在容器中暴露的端口
IMAGE_ID,您需要填写适当的值
编辑:
此外,除非您有特定的原因,否则不应该需要这一行

RUN echo 'alias run="php artisan serve"' >> ~/.bashrc

我会删除它,只是添加这个后,曝光

CMD php artisan serve

相关问题