質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

1回答

3756閲覧

docker 起動時のスクリプトを変更したい

退会済みユーザー

退会済みユーザー

総合スコア0

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2018/11/22 09:58

編集2022/01/12 10:55

すでに先人が構築した 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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

euledge

2018/11/22 12:42

なぜそれをしたいのかを聞かせてもらえると別の方法での回答も得られるかもしれません。
退会済みユーザー

退会済みユーザー

2018/11/23 23:19

理由を追記しました
guest

回答1

0

docker-compose up -d を実行したディレクトリに docker-compose.yml が存在していると思いますが、docker-compose.yml 内で command を指定すれば変更できます。
例えば、以下のような感じです。以下の場合だと、docker run を実行すると /sbin/init が実行されます。

yaml

1services: 2 mysql: 3 image: xxxxx 4 command: /sbin/init

投稿2018/11/22 15:03

geo

総合スコア42

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/11/23 23:19

ありがとうございます 月曜日に試してみたいと思います
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問