【发布时间】:2023-01-04 18:56:16
【问题描述】:
我有一个 docker-compose 环境设置。 但在服务“Lumen”内部,我试图向服务本身发出 CURL 请求。
但是,容器无法从 localhost:8000 或 lumen:8000 访问自身??
当我从服务调用 lumen:8000 时,它永远不会返回响应,只会继续加载(并且 curl 请求是针对不同的 url,因此没有无限循环)
在我的 Laravel 控制器中,我发现协议、主机和端口是:http://lumen:8000
我好像 Laravel 无法连接到自己,这是我的项目真正需要的。
我可以通过本地主机从我自己的计算机连接到 Laravel,但我需要 Laravel 自己调用它。
执行 CURL 请求后来自 Laravel 控制器的错误消息:
Failed to connect to localhost port 8000 after 0 ms: Connection refused
将主机更改为“流明”只会使请求负载无限大。无论我尝试连接到哪个页面。
Docker-compose 文件:
version: "3.5"
services:
lumen:
expose:
- "8000"
ports:
- "8000:8000"
volumes:
- ./server:/var/www/html
- ./server/vendor:/var/www/html/vendor/
build:
context: server
dockerfile: Dockerfile
command: php -S lumen:8000 -t public
restart: always
privileged: true
depends_on:
- database
networks:
- database
frontend:
build:
context: client
dockerfile: Dockerfile
volumes:
- ./client/src:/app/src
ports:
- 3000:3000
stdin_open: true
#restart: always
networks:
- database
# Database Service (Mysql)
database:
image: mysql:latest
container_name: blogmoda_mysql
environment:
MYSQL_DATABASE: blogmoda-app
MYSQL_USER: root
MYSQL_PASSWORD: root
MYSQL_ROOT_PASSWORD: root
command: ['--character-set-server=utf8mb4', '--collation-server=utf8mb4_unicode_ci','--default-authentication-plugin=mysql_native_password']
ports:
- "127.0.0.1:3306:3306"
volumes:
- db-data:/var/lib/mysql
networks:
- database
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: dev_phpmyadmin
links:
- database
environment:
PMA_HOST: database
PMA_PORT: 3306
PMA_ARBITRARY: 1
restart: always
depends_on:
- database
ports:
- 9001:80
networks:
- database
volumes:
db-data:
# Networks to be created to facilitate communication between containers
networks:
database:
服务器 dockerfile:
FROM php:8.1-fpm-alpine
RUN apk update && apk add bash
RUN apk add chromium
RUN apk add --no-cache zip libzip-dev
RUN docker-php-ext-configure zip
RUN docker-php-ext-install zip
RUN docker-php-ext-install pdo pdo_mysql
RUN docker-php-ext-install pdo_mysql
RUN docker-php-ext-install opcache
WORKDIR /var/www/html/
RUN php -r "readfile('http://getcomposer.org/installer');" | php -- --install-dir=/usr/bin/ --filename=composer
COPY . .
RUN composer install --ignore-platform-req=ext-zip --ignore-platform-reqs
【问题讨论】:
标签: php laravel docker docker-compose