İlk olarak, bir orada sorun Gözlerinde farklı Dockerfile:
RUN service mysql restart && /tmp/setup.sh
Docker görüntüleri çalışan işlemleri kaydetmez. Bu nedenle, RUNkomutunuz yalnızca docker buildaşama sırasında yürütülür ve derleme tamamlandıktan sonra durur. Bunun yerine, konteyner aşağıdaki gibi CMDveya ENTRYPOINTkomutlarını kullanarak başlatıldığında komutu belirtmeniz gerekir :
CMD mysql start
İkincisi, docker konteynerinin çalışmaya devam etmesi için bir işleme (son komut) ihtiyacı vardır, aksi takdirde konteyner çıkar / durur. Bu nedenle, normal service mysql startkomut doğrudan Dockerfile içinde kullanılamaz.
Çözüm
Süreci çalıştırmanın üç tipik yolu vardır:
Bu genellikle, çıkarılan günlüğü liman işçisine erişilebilir kıldığı için çalışan tek bir hizmetiniz olduğunda tercih edilir.
Bu yalnızca benzer bir komut dosyası varsa çalışır mysqld_safe.
Komutun bir dizi adım gerçekleştirmesi gerekiyorsa, bu en iyisidir, /start.sh çalışmaya devam .
Not
Yeni başlayanlar için supervisord önerilmez. Dürüst olmak gerekirse, aşırı dolu. Konteyner için tek hizmet / tek komut kullanmak çok daha iyidir.
BTW: referans için mevcut mysql docker görüntüleri için lütfen https://registry.hub.docker.com adresini kontrol edin