Olá, tenho este yml
arquivo para fazer o contêiner docker funcionar com o 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"
Importante: estou trabalhando com YML
arquivo e DOCKERFILE
apenas por limitações no uso do terminal
/ cmd
, já que ele não está disponível no meu usuário Windows.
Depois de instalá-lo e tudo funcionar corretamente, vá ver a estrutura do container e o caminho onde o phpmyadmin está localizado é:/var/www/html
Ocorreu-me que, assim como posso ver o document_root
de phpmiadmin
in xampp
/ wampp
, tentaria ver o do meu contêiner do docker.
Para conseguir isso, tente montar um volume adicionando a seguinte linha:
- ./bin/pma/phpmyadmin:/var/www/html
É aqui que começam as dificuldades, o sistema de volumes que implemento não está desenhado para o alcance do que pretendo.
como esse método sobrescreve o conteúdo da imagem pelo conteúdo do diretório que estou montando, isso faz com que o diretório fique vazio... haha
O que estou tentando fazer é montar um volume que faça referência à minha estrutura local de "janelas" e vinculá-lo a um diretório dentro do contêiner sem substituir nenhum arquivo, para que eu possa vê-los e modificá-los manualmente.
Outra ideia ou tentativa fracassada que não gosto é implementar um link simbólico e command
em 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"
outra implementação com link simbólico e 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"
Arquivo Docker:
FROM phpmyadmin/phpmyadmin
RUN mkdir -p /var/www2 && ln -s /var/www/html /var/www2/html
ENTRYPOINT ["apache2-foreground"]
Diretório vazio:
Parece-me redundante ou desnecessário ter que criar um link simbólico para vincular o link simbólico depois, quando o diretório original já existir...
No final o conteúdo deverá aparecer aqui:
Isso não faz sentido, mas foi o que fiz para consertar temporariamente.
YML:
Arquivo Docker:
Parece desconfortável para mim, mas tive que implantar um segundo contêiner apenas para copiar os dados... e montá-los no volume... ainda me parece errado, eles não deveriam ser necessários e deveria haver um tipo de volume que melhora esta questão... implementando-o a partir do YML. De qualquer forma, agora o problema é que se eu parar e desencaixar o contêiner Helper, o outro contêiner para de mostrar o phpmyadmin corretamente, uma loucura, mas é assim...