すでに先人が構築した docker 環境があって
いつも
docker-compose up -d
で起動して
docker exec -it [コンテナ名] /bin/bash
でコンテナに入るしかやったことがないレベルなのですが
コンテナ起動したとき中で動くサーバーの起動スクリプトを変更したいです
docker ps したときの COMMAND には /root/mysql-start.sh となっているので
これの中身を書き換えたいのですが docker 起動前にこのファイルを変更することはどうすればできるのでしょうか
追記:
先日 docker が 2.0.0 にアップデートされたために aufs がサポートされなくなり
既存の mysql コンテナがエラーを吐くようになりました
https://qiita.com/yKanazawa/items/7848d4820e7f5d6289ee
検索してみるとエラー内容も原因もこの記事の通りだと思うので
いままで service mysqld start
とだけかかれた起動スクリプトを
記事に書いてある起動コマンドにおきかえたいのです
追記:
docker-compose.yml の
command: /root/start-mysql.sh
となっているところを
command: find /var/lib/mysql -type f -exec touch {} \; && /root/start-mysql.sh
と書き換えてみたのですが
docker-compose down
docker-compose up -d
docker ps
をしてみたところステータスが
Restarting (1) Less than a second ago
となったままログインできません
コンテナに入れないとログもみれないので何がおきてるかもわからず…
コマンドを戻してから
docker exec -it mysql /bin/bash
でコンテナに入ってから
find /var/lib/mysql -type f -exec touch {} ;
をするとエラー等はなく普通に実行できます
mysql-start.sh の中はこうなってます
#!/bin/sh service mysqld start while true ; do /bin/bash done

