0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Dockerで環境を作りMySQLを起動するまで

Last updated at Posted at 2023-02-05

はじめに

こんにちは!
いきなりですが、今回は勉強がてらSQLの勉強するかなーと思いました。それでDockerで環境構築するか!と思いMySQLをインストールするまでのDockerfileとMySQLの起動をShellScriptで作りました!
せっかくなので記事にしていきます。

dockerfileの中身

dockerfileの全体の中身になります

dockerfile
FROM ubuntu:20.04

RUN apt update && apt upgrade
ENV TZ Asia/Tokyo
RUN apt install -y tzdata
RUN apt install -y --no-install-recommends mysql-server 
WORKDIR /usr/share/mysql
COPY start_mysql.sh /usr/share/mysql
RUN chmod 755 /usr/share/mysql/start_mysql.sh

ちょっと中身を見ていきます。
まず今回はUbuntu20.04を指定をしてます。
そして次にaptをupdateしてupgradeします。

dockerfile
FROM ubuntu:20.04

RUN apt update && apt upgrade

次にこれ。
少しあれってなりました。なぜならばlogの方を見てほしいのですが、ここで先に進まなくなってしまいました。
ちょっと調べてみるとどうやら次の1行でタイムゾーンのインストールが必要なようです。RUN apt install -y tzdata
入れたら問題が解決しました。

dockerfile
RUN apt install -y tzdata
RUN apt install -y --no-install-recommends mysql-server 
ターミナル
=> [3/3] RUN apt install -y mysql-server
=> => # questions will narrow this down by presenting a list of cities, representing
=> => # the time zones in which they are located.
=> => #   1. Africa      4. Australia  7. Atlantic  10. Pacific  13. Etc
=> => #   2. America     5. Arctic     8. Europe    11. SystemV
=> => #   3. Antarctica  6. Asia       9. Indian    12. US
=> => # Geographic area:

次に上から順にやっていることですが、
WORKDIR /usr/share/mysqlについてはコンテナに入ったらこの指定した箇所がスタートになります。
COPY start_mysql.sh /usr/share/mysqlについてはローカルにあるshellファイル(今回作成したstart_mysql.sh)をコンテナの/usr/share/mysqlのなかにコピーします。
RUN chmod 755 /usr/share/mysql/start_mysql.shについてはコピーしたstart_mysql.shの権限を変更しています。

dockerfile
WORKDIR /usr/share/mysql
COPY start_mysql.sh /usr/share/mysql
RUN chmod 755 /usr/share/mysql/start_mysql.sh

ShellScriptの中身

次にShellScriptの中身ですが、実行したらroot権限で入れるようにしました。
やっていることはmysqlをスタートしてログインするというコマンドを入れているだけです。

start_mysql.sh
service mysql start 
mysql -u root -p

Docker起動

次は実際に起動手順を書いていこうと思います。
以下で起動可能です!

docker
$ docker image build -t sample-mysql:v1 .
$ docker image ls
$ docker run --name mysql-container -it sample-mysql:v1

以下でShellを実行します。

コンテナ
$ source start_mysql.sh

最後に

いかがでしたでしょうか。
もし余計なものがあったらすみません。。
ですが、こちらでMySQLが起動できました!
また本当はdockerfileにShellを実行するコマンドも書きたかったのですが、
ちょっとうまくいきませんでしたのでとりあえずはコンテナ内で叩くという方針にしました。。。
今回SQLの勉強をしたいため環境を作ったので別途SQLの記事も書きたいかなと思います!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?