问题描述
我的 docker-compose 文件:
version: '3.8'
services:
cache:
image: memcached:latest
restart: always
ports:
- "10001:11211"
server:
build: '.'
tty: true
working_dir: /var/www
environment:
disABLE_DEFAULT_SERVER: 1
AUTORELOAD_PROGRAMS: "kid_api"
AUTORELOAD_ANY_FILES: 1
volumes:
- ../../Apps/Server:/var/www
- ./PHP/config/custom.ini:/usr/local/etc/PHP/conf.d/custom.ini
- ./supervisor/kid_api.conf:/etc/supervisor/service.d/kid_api.conf
ports:
- "9988:9988"
depends_on:
- cache
links:
- cache
我的 Api.PHP 文件进入 /var/www 使用 Swoole 的守护程序服务器的开放套接字端口。
当我尝试 docker-compose up 时,ports 没问题:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4c80bee2baf7 PHP74_swoole4510_base_server "/entrypoint.sh" 2 hours ago Up 1 second 0.0.0.0:9988->9988/tcp PHP74_swoole4510_base_server_1
3b0f67cc3295 memcached:latest "docker-entrypoint.s…" 24 hours ago Up 2 hours 0.0.0.0:10001->11211/tcp PHP74_swoole4510_base_cache_1
但是如果我尝试使用 PHPStorm 运行
然后端口没有打开
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a7b534100202 PHP74_swoole4510_base_server "PHP /var/www/Api.PHP" 2 seconds ago Up Less than a second PHP74_swoole4510_base_server_run_df9a640e18bb
3b0f67cc3295 memcached:latest "docker-entrypoint.s…" 24 hours ago Up 2 minutes 0.0.0.0:10001->11211/tcp PHP74_swoole4510_base_cache_1
如何解决?
解决方法
docker-compose up
不等同于 docker-compose run
。
PhpStorm 执行 docker-compose run service_name command
。
在这种情况下,Docker Compose 本身不会映射端口,您可以在终端中查看。
您可以在终端中手动使用 docker-compose up
启动服务,然后在 exec
模式下使用 PhpStorm(该选项在您的屏幕截图中可见)。