你好,我有这个yml
文件可以让docker容器与phpmyadmin一起工作:
phpmyadmin:
image: phpmyadmin/phpmyadmin
restart: always
expose:
- 80
depends_on:
- database
volumes:
- /sessions
- ./bin/pma/php.ini:/usr/local/etc/php/conf.d/php-phpmyadmin.ini
extra_hosts:
- "host.docker.internal:host-gateway"
重要提示:我正在使用YML
文件,并且仅仅由于/DOCKERFILE
的使用限制,因为它在我的 Windows 用户中不可用。terminal
cmd
一旦安装完成并且一切正常,请查看容器的结构以及 phpmyadmin 所在的路径:/var/www/html
我突然想到,就像我可以在/document_root
中看到一样,我会尝试查看我的 docker 容器的。phpmiadmin
xampp
wampp
为了实现此目的,请尝试通过添加以下行来安装卷:
- ./bin/pma/phpmyadmin:/var/www/html
困难就从这里开始,我实施的音量系统不是根据我想要的范围设计的。
由于此方法用我正在挂载的目录的内容覆盖图像的内容,这会导致目录变空......哈哈
我想要做的是能够挂载一个引用我本地“windows”结构的卷并绑定到容器内的目录而不替换任何文件,以便我可以手动查看和修改这些文件。
command
我不喜欢的另一个想法或失败的尝试是在 YML 中实现符号链接:
version: '3.8'
services:
phpmyadmin:
image: phpmyadmin/phpmyadmin
restart: always
expose:
- 80
depends_on:
- database
volumes:
- /sessions
- ./bin/pma/php.ini:/usr/local/etc/php/conf.d/php-phpmyadmin.ini
- ./bin/pma/phpmyadmin:/var/www/html/my_phpmyadmin
extra_hosts:
- "host.docker.internal:host-gateway"
command: sh -c "ln -s /var/www/html/my_phpmyadmin /var/www/html/phpmyadmin && apache2-foreground"
使用符号链接的其他实现和Dockerfile
:
phpmyadmin:
container_name: PMA
build:
context: ./bin/pma
dockerfile: Dockerfile
restart: always
expose:
- 80
depends_on:
- database
volumes:
- /sessions
- ./bin/pma/php.ini:/usr/local/etc/php/conf.d/php-phpmyadmin.ini
- ./bin/pma/source-code:/var/www2/html
extra_hosts:
- "host.docker.internal:host-gateway"
Dockerfile:
FROM phpmyadmin/phpmyadmin
RUN mkdir -p /var/www2 && ln -s /var/www/html /var/www2/html
ENTRYPOINT ["apache2-foreground"]
空目录:
当原始目录已经存在时,创建符号链接以便之后绑定符号链接对我来说似乎是多余的或不必要的......
最后内容应该出现在这里:
这没有意义,但这是我暂时修复它的方法。
年薪:
Dockerfile:
我觉得这很不舒服,但我不得不部署第二个容器只是为了复制数据……并将其安装在卷上……在我看来这仍然是错误的,它们不应该是必要的,应该有一种类型的卷可以改善这个问题……从 YML 实现它。无论如何,现在的问题是,如果我停止并取消停靠 Helper 容器,另一个容器将停止正确显示 phpmyadmin,这很疯狂,但事实就是这样……