php - php 容器使用 docker-compose 不断重启
问题描述
我有以下 docker-compose 文件。当我尝试启动文件时,mysql容器启动,但php不断重启。当我查看日志时,我得到的只是“交互式外壳”。知道为什么会这样吗?
---
version: "3"
services:
web:
image: php:alpine3.12
restart: unless-stopped
volumes:
- web_Data:/var/www/html
ports:
- 80:80
- 443:443
mariadb:
image: mariadb
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: Password1
volumes:
- mariadb_Data:/var/lib/mysql
ports:
- 3306:3306
volumes:
web_Data:
mariadb_Data:
driver: local
解决方案
您收到Interactive shell
消息的原因是因为这是图像的输出,php:alpine3.12
并且由于您的容器不断重新启动,它会不断记录该消息。
我不太了解 PHP,但看起来图像试图执行的命令是docker-php-entrypoint php -a
,并且启动了一个交互式 shell,对吗?
如果是这种情况,那么您需要以交互模式运行它。为此,在docker-compose.yml
文件中,只需添加最后 2 行:
web:
image: php:alpine3.12
restart: unless-stopped
volumes:
- web_Data:/var/www/html
ports:
- 80:80
- 443:443
stdin_open: true
tty: true
然后您的容器将继续运行,您将能够与它进行交互。
推荐阅读
- sql - 从 SQL Server 中的 JSON 获取值和键
- wso2 - 如何修复“没有任何受众值与 tokenEndpoint Alias https://172.28.1.101:9444/oauth2/token 匹配”?
- javascript - 使用 useState 清除字段
- android-studio - 我可以注入活动的视图模型并在对话框片段中使用它吗
- c++ - 处理 .wav 文件时输出失真
- jquery - DataTables 警告:表 id=users_table - 请求第 0 行第 4 列的未知参数“操作”
- java - 运行时权限
- msbuild - 适用于 MSBuild 的 SonarQube 扫描仪:SonarQube 无法收集有关您的项目的所需信息
- wordpress - 如何使用 css 为不同的页面添加单独的标题图像
- object-detection - 我应该为验证图像创建 json 注释吗?