我正在尝试使用 docker 部署我的 Laravel 应用程序。但是访问 URL 时出现内部服务器错误。
我有 2 个服务器,一个用于公共 IP 和反向代理,第二个是 Laravel 应用程序所在的位置。假设第一个是 10.0.0.12,第二个是 10.0.0.81。我使用 IP 和端口进行测试
在 10.0.0.12 中我使用 nginx 进行反向代理,将连接代理到 10.0.0.81
server {
listen 8666;
server_name 10.0.0.12;
location / {
proxy_pass http://10.0.0.81:8555;
}
}
这是我的 Laravel 项目中的 Dockerfile:
FROM php:7.4-apache
RUN apt-get update && apt-get install -y \
git \
unzip \
libonig-dev \
libzip-dev \
libpng-dev \
libjpeg-dev \
libfreetype6-dev \
&& docker-php-ext-install pdo_mysql mbstring zip exif pcntl bcmath gd
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
WORKDIR /var/www/html/laravel-cms
COPY . .
RUN composer install --no-scripts
RUN php artisan key:generate
RUN chmod -R 777 storage bootstrap/cache
# Expose port 80 di dalam container
EXPOSE 80
# Set permission pada Apache
RUN chown -R www-data:www-data /var/www/html/laravel-cms
CMD ["apache2-foreground"]
这是针对 Docker Compose 的:
version: '3'
services:
web:
build:
context: .
dockerfile: Dockerfile
image: laravel-app
container_name: laravel_cms-container
restart: unless-stopped
ports:
- "8555:80"
volumes:
- .:/var/www/html/laravel-cms
networks:
- laravel
networks:
laravel:
配置完所有这些后,我运行 docker build 和 docker up 命令。到目前为止,没有错误。但是当我在浏览器中访问 URL 时,我收到了如下消息:
request: "GET / HTTP/1.1", upstream: "http://10.0.0.81:5555/", host: "10.0.0.12:8666" 2023/12/20 15:42:01 [error] 178771#178771: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 10.0.0.1, server: 10.0.0.12
我做错了什么吗?我该怎么做才能解决这个问题?抱歉,但这是我第一次使用 Docker 容器。任何帮助都将不胜感激。谢谢