3
2

More than 1 year has passed since last update.

Docker GoでREST APIを作成、MySQLに接続する

Posted at

はじめに

本格的にアプリ開発を始める前に、練習として
Dockerを用いてGoコンテナ、MySQLコンテナを作成、
MySQLからデータを取得するAPIを作成しました。

作成の手順、参考にした記事をまとめてます。

使用技術

Go
net/http

Dockerとは

以下の記事を参照

実施したこと

DockerでGoコンテナを作成、Docker

Goコンテナ、MySQLコンテナを同時に作成する前に、
Goコンテナのみ作成しました。
初めてに触れるので、Dockerに慣れるために

DockerでGoコンテナを作成、
Docker上でGoサーバーを起動させました。

参考にした記事は以下の記事です。
https://www.yoheim.net/blog.php?q=20170403
https://zenn.dev/kenny/articles/b9dd668bf09efe
https://qiita.com/kooohei/items/0e788a2ce8c30f9dba53
https://docs.docker.jp/engine/reference/builder.html

調べたこと

〇DockerFileを作成
Dockerfileとは、DockerImageを作成するもの

コマンド
FROM ~
~というイメージをもとにDocker Imageを作成する
~には公式イメージが来ることが多い

ENV
環境変数の設定
環境変数とは、OSが動いているときに使える変数
https://wa3.i-3-i.info/word11027.html

RUN
RUNの後にイメージが実行されたときのコマンドを実行する
https://www.guri2o1667.work/entry/2021/06/08/%E3%80%90Docker%E3%80%91Dockerfile%E3%81%A7%E8%A8%98%E8%BF%B0%E3%81%99%E3%82%8BRUN%E3%81%A8CMD%E3%81%A8ENTRYPOINT%E3%81%AE%E9%81%95%E3%81%84%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6#RUN%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%A8CMDENTRYPOINT%E3%81%AE%E9%81%95%E3%81%84

WORKDIR
各種命令を実行する際のカレントディレクトリを指定

バイナリ
https://wa3.i-3-i.info/word14226.html

○Goプロジェクトの作り方
・ディレクトリを作る
・main.goを作る
・go mod(モジュール管理のファイル)を作成

参考記事
https://zenn.dev/ryo_yamaoka/articles/595cf9e69229f9
https://zenn.dev/optimisuke/articles/105feac3f8e726830f8c

エラー解決の参考記事
https://castaneai.hatenablog.com/entry/2019/02/22/151213

Go moduleについて
https://osamu-tech-blog.com/go-go-modules/

DockerでGo Server、MySQLを起動、接続する

mySQLコンテナを作る為に参考にした記事は以下
https://ponsanlabo.com/create-mysqldockerimage-from-dockerfile/
https://pointsandlines.jp/db-sql/mysql/docker-mysql#MySQL

参考にしたAPIの記事は以下
https://dev.classmethod.jp/articles/go-sample-rest-api/

Goについて
http://psychedelicnekopunch.com/archives/560

発生したエラーの解決するために調べた記事は以下
https://qiita.com/wakki_haya/items/a00ecdc231e131b4d18d
https://qiita.com/GalaxyNeko/items/0e365fe13d177c368acf
https://qiita.com/gbf_abe/items/2bf45206c515cea75d9b
https://rurukblog.com/post/docker-compose-file-update/
https://stackoverflow.com/questions/69615253/copy-failed-forbidden-path-outside-the-build-context-docker-compose
https://qiita.com/TKR/items/ac29ee783bc4684d0612

docker内のMySQLに接続する

参考記事
docker内のMySQLに接続したい

mysqlをダウンロードする

参考記事
MySQLをダウンロード
Docker-Composeで3306以外のポートでmysqlを起動

3
2
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
3
2