2
respostas

Volume do MySQL no Docker

Boa Noite.

Estou tentando subir um container mysql com volume, porém estou encontrando uma enorme dificuldade. Segue o meu docker-compose.yml e o erro encontrado no docker logs.

2018-01-18T22:56:43.739998Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting.
2018-01-18T22:56:43.740361Z 0 [ERROR] Aborting
version: '3'
services:
    php:
        build:
            dockerfile: ./docker/php.dockerfile
            context: .
        image: php
        container_name: meu_php
        ports: 
            - "80:80"
        networks:
            - development-network
        volumes:
            - /c/Users/Usuario/Desktop/Cibus:/var/www/html
        depends_on: 
            - "mysql"

    mysql:
        image: mysql:5.6
        container_name: meu_sql
        networks:
            - development-network
        environment:
            MYSQL_USER: root
            MYSQL_ROOT_PASSWORD: admin
        ports:
            - "3306:3306"
        volumes:
            -  /c/Users/Usuario/Desktop/databases:/var/lib/mysql

networks:
    development-network:
        driver: bridge

volumes:
    mysql_data:
        driver: local
2 respostas

Olá Henrique, tudo bem?

Não tenho experiência de uso de docker no windows mas acho que você precisa vincular o caminho absoluto no volume, se você tentar acessar esses caminhos pelo windows explorer eles estão acessíveis?

/c/Users/Usuario/Desktop/databases

/c/Users/Usuario/Desktop/Cibus

Outra coisa, qual é a sua intenção com essa configuração no final do arquivo em volumes?

Aconselho a dar uma olhada na documentação do mysql no docker em https://docs.docker.com/samples/library/mysql/#connect-to-mysql-from-the-mysql-command-line-client

E uma sugestão para gerar um arquivo compose para trabalhar com php + mysql https://phpdocker.io/generator

Tentar gerar um compose modelo por esse último link e depois você customiza de acordo com suas necessidades.

Espero ter ajudado, um abraço e bons estudos.

Olá.

Acessei os caminhos via linha de comando e realmente estão acessíveis. Tentei subir um container mysql separadamente, para fins de teste, e encontrei outros erros que não estou consigo resolver. Segue meu arquivo .yml e os erros encontrados.

O que percebi é que o erro ocorre quando adiciono um volume. Notei também, por pesquisas, que o erro ocorre principalmente no Windows 10.

2018-01-21T14:24:12.918480Z 0 [ERROR] InnoDB: Operating system error number 22 in a file operation.
2018-01-21T14:24:12.918772Z 0 [ERROR] InnoDB: Error number 22 means 'Invalid argument'
2018-01-21T14:24:12.918848Z 0 [ERROR] InnoDB: File ./ib_logfile101: 'aio write' returned OS error 122. Cannot continue operation
2018-01-21T14:24:12.918906Z 0 [ERROR] InnoDB: Cannot continue operation.
version: '3'
services:
    mysql-dev:
        image: mysql:5.7
        container_name: mysql_teste
        environment:
            MYSQL_ROOT_PASSWORD: admin
            MYSQL_DATABASE: blogapp
        ports:
            - 3308:3306
        volumes:
            - "/c/Users/Usuario/Desktop/mysql_teste/data:/var/lib/mysql:rw"

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software