- 投稿日:2019-10-28T23:22:33+09:00
Rails5.2 + Vue.js + Dockerでプロジェクトを作成
はじめに
Railsを使っていてVueも一通り学んだのでRailsとVueを使えるように環境構築してみようと思い勉強してみたことをアウトプット。
Rubyのバージョンは2.5.3
Railsのバージョンは5.2.3
DBはMysqlを使用Railsのプロジェクトを作成するディレクトリを事前に作成しておく
$ mkdir <任意のフォルダ名>
フォルダを作成したら作成したディレクトリに移動しておくDocker用のファイルの作成
Dockerのコンテナを作成するためのファイルを作成
Dockerfile
docker-compose.yml
Gemfile
Gemfile.lock
の4つのファイルを作成する。DockerfileFROM ruby:2.5.3 RUN curl -sL https://deb.nodesource.com/setup_10.x | bash - && apt-get update && \ apt-get install -y nodejs --no-install-recommends && rm -rf /var/lib/apt/lists/* RUN apt-get update -qq && apt-get install -y build-essential libpq-dev RUN apt-get update && apt-get install -y curl apt-transport-https wget && \ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \ echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ apt-get update && apt-get install -y yarn RUN curl -sL https://deb.nodesource.com/setup_8.x | bash - && \ apt-get install nodejs RUN yarn add node-sass RUN mkdir /app WORKDIR /app COPY Gemfile /app/Gemfile COPY Gemfile.lock /app/Gemfile.lock RUN bundle install COPY . /appdocker-compose.ymlversion: '3' services: web: build: . command: bundle exec rails s -p 3000 -b '0.0.0.0' volumes: - .:/app ports: - 3000:3000 depends_on: - db tty: true stdin_open: true db: image: mysql:5.7 volumes: - db-volume:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: password volumes: db-volume:Gemfilesource 'https://rubygems.org' ruby '2.5.3'Gemfile.lock
はbuildした後に自動的に記述されるので空にしておく。(ファイルは必要)この4つのファイルを作成し、先ほど作成したディレクトリに置く。
Railsプロジェクトの作成
次にRailsのプロジェクトを作成するため次のコマンドを実行
$ docker-compose run web rails new . --force --database=mysql
(rails newの . は現在いるディレクトリにそのままプロジェクトを作成するというもの)プロジェクトの作成が終わったら
docker-compose psでコンテナが作成されているか確認。
次にRailsプロジェクトのdatabase.ymlを編集します。config/database.ymldefault: &default adapter: mysql2 encoding: utf8 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> username: root password: password host: dbpasswordとhostの部分をdocker-compose.ymlの記述と合わせます。
$ docker-compose upコマンドでコンテナを立ち上げ、localhost:3000に接続し、RailsのHello World画面が表示されれば無事成功です!Vue.jsの導入
vue.jsをRailsで使用できるようにするためにまずはWebpackerの導入が必要。Gemfileに以下を追加します。
Gemfilegem 'webpacker'記述したら
$ docker-compose run web rails webpacker:installを実行自分の場合、Gemfileの記述を
gem 'webpacker', github: 'rails/webpacker'
とするとyarnエラーが出てインストールができませんでした。インストールが完了したらいろいろRailsのプロジェクトにファイルが追加されると思います。
次にVueをインストールしていきます。
$docker-compose run web rails webpacker:install:vueこれでVue.jsの導入が完了しました。
vue.jsファイルのビルド
次にVue.js関連のコンポーネントをJavascriptにコンパイルするため
$ docker-compose run web bin/webpackコマンドを実行します。RailsのViewsファイルに
<%=javascript_pack_tag 'hello_vue'%>と記述し問題なく表示されていれば成功です!参考
dockerでrails+vueの環境を作ったので解説
Rails5.2 + Docker環境にVue.js (Webpacker) を導入する
- 投稿日:2019-10-28T15:22:05+09:00
DockerでJiraとConfluenceを立てる
概要
- JiraとConfluenceを自前サーバで立てる
- Install & 環境構築を楽する為にDockerを使う
環境
- 自前サーバは何でも良いが、とりあえず今回はMacOS上のVirtualBox/Vagrantで用意
- VMのOSはUbuntu18.04を使用(dockerのinstall部分は、他OSの場合、手順が異なるので注意)
手順
Vagrantfileを作成する
bash# vagrantfileを置くdirectoryを作成 iguchi@igc-mbp:~$ mkdir -p my-vagrant/jira-confluence-study # vagrantfileを生成 iguchi@igc-mbp:~/my-vagrant/jira-confluence-study$ vagrant init bento/ubuntu-18.04VMのNetworkとMemoryを設定する(Vagrantfileに書く)
bashiguchi@igc-mbp:~/my-vagrant/jira-confluence-study$ vi Vagrantfile ...(omit)... # 以下をコメントイン。IP addressは適宜変える。今回はdefaultのまま config.vm.network "private_network", ip: "192.168.33.10" ...(omit)... # 以下のあたりをコメントイン。Vagrantfileでvmに割当てるmemory sizeを増やしておく # 理由:jiraとconfluenceを一つのVM内で動かすにはdefaultの1024はmemory不足 config.vm.provider "virtualbox" do |vb| # Display the VirtualBox GUI when booting the machine # vb.gui = true # Customize the amount of memory on the VM: vb.memory = "2048" end ...(omit)...VMを起動する
bashiguchi@igc-mbp:~/my-vagrant/jira-confluence-study$ vagrant up起動したVMにssh接続する
bashiguchi@igc-mbp:~/my-vagrant/jira-confluence-study$ vagrant sshVMにDockerをinstallする
- 参考: https://docs.docker.com/install/linux/docker-ce/ubuntu/
- 注: CentOSの場合はこちらを参照: https://docs.docker.com/install/linux/docker-ce/centos/
bashvagrant@vagrant:~$ sudo apt update vagrant@vagrant:~$ sudo apt-get remove docker docker-engine docker.io containerd runc vagrant@vagrant:~$ sudo apt update vagrant@vagrant:~$ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common vagrant@vagrant:~$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - vagrant@vagrant:~$ sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable" vagrant@vagrant:~$ sudo apt update vagrant@vagrant:~$ sudo apt-get install docker-ce docker-ce-cli containerd.io vagrant@vagrant:~$ sudo groupadd docker groupadd: group 'docker' already exists vagrant@vagrant:~$ sudo usermod -aG docker $USER vagrant@vagrant:~$ newgrp dockerDockerを使ってJIRAをinstallする
- 参考1: https://hub.docker.com/r/atlassian/jira-software
- 参考2: https://ja.confluence.atlassian.com/adminjiraserver/installing-jira-applications-938846823.html
bash# jiraの永続データを保存するvolumeを作成 vagrant@vagrant:~$ docker volume create --name jiraVolume # jiraのコンテナを起動 vagrant@vagrant:~$ docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 atlassian/jira-softwarehttpでJiraにアクセスし、GUIの指示に従って設定
Dockerを使ってConfluenceをinstallする
- 参考1: https://ja.confluence.atlassian.com/doc/confluence-installation-guide-135681.html
- 参考2: https://hub.docker.com/r/atlassian/confluence-server/
bash# confluenceの永続データを保存するvolumeを作成 vagrant@vagrant:~$ docker volume create --name confluenceVolume # confluenceのコンテナを起動 vagrant@vagrant:~$ docker run -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 atlassian/confluence-serverhttpでConfluenceにアクセスし、GUIの指示に従って設定
- 投稿日:2019-10-28T15:00:28+09:00
エンジニアがWordPressでWebサイト作ってみる~準備篇~
はじめに
Webデザインの知識はからっきしなエンジニアだけど知り合いに飲食店のHP作成を頼まれたからWordPressで作ってみる。
準備
どのように習熟していけば良いかを知る
以下のサイトを参考にした。
WordPress未経験から1ヶ月でテーマを作成するまでの学習法dockerでwordpressとMySQLコンテナをインストール
以下のQiitaを参考にした。
docker-composeでwordpress環境をサクッと構築するwordpressに入門する
以下のサイトを参考にした。
WordPress入門
ドットインストールという動画でプログラミングを学べるサイト。dockerを使っていれば「#02 WordPressをインストールしよう」のDB作成などはスキップできる。docker最高。動画で参考になった情報
- resestCSS
- ブラウザ間の表示差異をなくしてくれるcss
- 2019年版!おすすめのリセットCSSまとめ
WEBサイト制作
別ページに今度まとめます。(まだ作ってない)
ローカルから本番サーバへ移行
ローカルWordPressで作成して本番サーバに移行予定。
以下が参考になりそう?
- バックアップやサイト移管に最適!All-in-One WP migrationの使い方
- 移行ツールを使って移行
- 【完全解説】wordpressをローカル環境から本番環境に移行する方法
- 移行ツールが無理そうだったら手動で移行
- Dockerコンテナを移行してみる【成功編】
- コンテナ移行で済んだら一番楽だけど開発環境Windowsだし本番サーバがどうなってるか全くわからないから無理かな。。
- 投稿日:2019-10-28T12:16:54+09:00
docker の空き容量が足りないなら docker system prune すれば良いじゃない ( #docker )
35GBぐらい空きました。
$ docker system df TYPE TOTAL ACTIVE SIZE RECLAIMABLE Images 45 35 13.53GB 6.234GB (46%) Containers 327 7 3.855GB 3.854GB (99%) Local Volumes 425 136 30.98GB 30.45GB (98%) Build Cache 0 0 0B 0B$ docker system prune --volumes WARNING! This will remove: - all stopped containers - all networks not used by at least one container - all volumes not used by at least one container - all dangling images - all dangling build cache Are you sure you want to continue? [y/N] y Deleted Containers: 528096fb9948df25b4fa6396384d13d70981af032cb3cb012b4c9d16887231d2 a8fec1d907172c994b75d43bcab536ea4efa7efa88d83dc096d95b7b061162c7 6350e53bc429e04aa996c2e7356c13db7f3618294b28f1b45ecd18a233da4742 Deleted Networks: project2_default tmp_default Deleted Volumes: 3ecff240d1d40bc44dc4bb0f6e099ae0c16d9f1bd5ffeea7a0274235209220eb 7b694aed1803d983e4fd475a6693d406d3c654f6c3c96429bc18bd0575541b60 9179d1174ec9a39d3fc4639e83a7190e8c794f5151ac14e7272648f8ec1c24fe Deleted Images: deleted: sha256:f2f39fb9f14f724101ee9dd9bb7995b61919b41ea6a69926aa897732928b7783 deleted: sha256:bf0e02c7377e2165c89e13f13aae8e83f139d57601942c12dbf7823b2930750f deleted: sha256:16032a7be6cfa3acbebc6097a76bce72f44ef8954df3de4a3d2aef2424ef3ad3 ... Deleted Containers: deleted: sha256:d35ef5a3a04121f3604511342f3170869e10223568d16dca1643f8badf3bba12 deleted: sha256:fdcdc09ea99cc713c4eaf52de7bfb0c6f98b6436b6e7307359b5ce28101f2bf4 ... Total reclaimed space: 35.08GB$ docker system df TYPE TOTAL ACTIVE SIZE RECLAIMABLE Images 38 9 13.09GB 9.632GB (73%) Containers 10 7 906kB 327.9kB (36%) Local Volumes 5 4 504.9MB 96.35MB (19%) Build Cache 0 0 0B 0BOriginal by Github issue
- 投稿日:2019-10-28T11:50:53+09:00
docker-compose.ymlを書いたらチェッカー入れてみようねって話
なんか怒られるようになった・・・
services.web.environment.ports contains ["3000:3000"], which is an invalid type, it should be a string, number, or a null書いてるのはお馴染みの下記の記述。
ports: - 3000:3000妙なのはdbコンテナでは上記で書けて、webコンテナでは書けないと言うこと。
原因解明
質問したら、ワンパンで解決。
インデントずれてね?
そう、インデントがずれていたのである。私のエディタでは全角のインデントを可視化させているので、視覚的に妙なインデントになるのを防ぐようにしてて安心しきってたんですが、純粋に階層が1つ深くなった状態になってたんですね。
docker-compose.ymlweb: build: . command: ["/bin/sh", "-c", "yarn install && cd product_name && bundler exec rails s -p 3000 -b '0.0.0.0'"] environment: BUNDLE_APP_CONFIG: /web/.bundle ports: - 3000:3000 depends_on: - db上記のようになったたんですね。正解は、下記です。
docker-compose.ymlweb: build: . command: ["/bin/sh", "-c", "yarn install && cd product_name && bundler exec rails s -p 3000 -b '0.0.0.0'"] environment: BUNDLE_APP_CONFIG: /web/.bundle ports: - 3000:3000 depends_on: - dbいやー、微妙。すごい見つけずらい。でもこうしないと、ymlの記述の型がおかしくて怒られるようになるので、注意しないといけないです。で、オススメされたのがこちら。
これのyamlチェッカーを使うと、ミスが減るんじゃないでしょうかとのこと。確かにその通りなので、以降使っていきたいと思います。
- 投稿日:2019-10-28T11:14:49+09:00
Laravel Dusk + Selenium + Dockerでブラウザテスト(Laravel6.0)
Laravel6.0 + Docker開発環境でブラウザテストを自動化する方法について解説します。
前提条件として、LaravelのDocker開発環境が構築済みで、Laravelのウェルカムページにアクセスできる必要があります。開発環境
Laravel6.0
PHP7.3.10
macOS
Docker19.03.2
docker-selenium images:
・selenium/hub:3.141.59-vanadium
・selenium/node-chrome:3.141.59-vanadium
Google ChromeLaravel Duskのインストール
composer.jsonのrequire-devにLaravel duskを追加します。
(この時、requireの方に追加しないように注意しましょう。本番環境にDuskをインストールするとセキュリティ的によくないです。)"require-dev": { "laravel/dusk": "^5.5", }その後、
composer installでライブラリをインストールしましょう。docker-seleniumでブラウザテスト用サーバーを立てる
docker-compose.ymlを編集します。
version: '3.7' services: dev: build: context: "./docker/dev/" image: project/dev container_name: project-dev volumes: - "./project:/project" ports: - 8000:80 selenium-hub: image: selenium/hub:3.141.59-vanadium container_name: selenium-hub ports: - 4444:4444 chrome: image: selenium/node-chrome:3.141.59-vanadium container_name: selenium-chrome volumes: - /dev/shm:/dev/shm depends_on: - selenium-hub environment: - HUB_HOST=selenium-hub - HUB_PORT=4444Laravel Duskの設定を行う。
project/tests/DuskTestCase.phpを編集します。<?php namespace Tests; use Laravel\Dusk\TestCase as BaseTestCase; use Facebook\WebDriver\Chrome\ChromeOptions; use Facebook\WebDriver\Remote\RemoteWebDriver; use Facebook\WebDriver\Remote\DesiredCapabilities; abstract class DuskTestCase extends BaseTestCase { use CreatesApplication; public static function prepare() { // static::startChromeDriver(); } protected function baseUrl(){ return 'http://project-dev:80'; } protected function driver() { $options = (new ChromeOptions)->addArguments([ '--disable-gpu', '--headless', ]); return RemoteWebDriver::create( 'http://selenium-hub:4444/wd/hub', DesiredCapabilities::chrome()->setCapability( ChromeOptions::CAPABILITY, $options ) ); } }デフォルトでは、
project/tests/Browser/ExampleTest.phpに書かれている以下のテストが実行されます。<?php namespace Tests\Browser; use Tests\DuskTestCase; use Laravel\Dusk\Browser; use Illuminate\Foundation\Testing\DatabaseMigrations; class ExampleTest extends DuskTestCase { public function testBasicExample() { $this->browse(function (Browser $browser) { $browser->visit('/') ->assertSee('Laravel'); }); } }これでブラウザテストの準備が整いました!!
早速コンテナを立ち上げ、phg artisan duskを実行してみましょう。
問題なくブラウザテストが通ったら完了です。
- 投稿日:2019-10-28T10:50:20+09:00
Phoenix用Dockerfile
落ち着いてきたのでPhoenixにしっかり入門しようと思いPhoeinxの環境を構築してみた。
以前、雑にGKEに乗っけるための記事を書いたりしたがそこから期間が空いてしまいPhoenixに関するいろいろな記憶が失われていたため再構築中
今回は手元にDockerを使ってPhoenixの開発に必要な環境を構築したので備忘録とす想定読者
- ぼく
- Phoenixを追いかけ始めた新米錬金術師
Dockerfile
早速ですが試行錯誤の末に完成したDockerfileです
FROM elixir:1.9.0 WORKDIR /app RUN apt-get update && \ curl -sL https://deb.nodesource.com/setup_10.x | bash - && \ apt-get install -y nodejs npm inotify-tools RUN mix local.hex --force && \ mix archive.install --force https://github.com/phoenixframework/archives/raw/master/phx_new.ez && \ mix local.rebar --force COPY mix.exs mix.exs COPY mix.lock mix.lock RUN mix deps.get && mix compile COPY assets/package.json assets/package.json COPY assets/package-lock.json assets/package-lock.json RUN cd assets && npm install EXPOSE 4000 COPY . .ポイントはDockerfileの時点で
mix deps.get && mix compileしていること
これしとくことでKubernetesに乗っけたときも即起動するはず...たぶん(動かしてない)docker-compose.yml
こちらも早速
version: '3.2' services: app: build: . ports: - "4000:4000" command: tail -f /dev/null # 開発用なのでコンテナ内でiex -S mix phx.serverする前提 environment: - MIX_ENV=dev - PORT=4000 - DATABASE_USER=postgres - DATABASE_PASSWORD=postgres - DATABASE_NAME=postgres - DATABASE_HOST=db - DATABASE_URL=ecto://postgres:postgres@db/postgres # NOTE: これはproductionで動かすときに使う - SECRET_KEY_BASE= volumes: - .:/app depends_on: - db db: image: postgres environment: - POSTGRES_USER=postgres - POSTGRES_PASSWORD=postgres - POSTGRES_HOST=db - POSTGRES_DB=postgres先に書いたDockerfileを使ってローカルで開発するとちょっとボリュームの共有がやりづらくなってしまう(´・ω・`)
これはDockerfile内でassetsとpackageをコンパイルしているがローカルには存在しないため手元のコードをマウントすると_buildとassetsの成果物が失われるため(´・ω・`)
ただ、ローカル開発だけならパッケージを追加しない限りは一度mix compileしておけば再コンパイルの必要はない。assetsも同じ最初にやること
docker-compose pull docker-compose build docker-compose up -d docker-compose exec app bash -c "cd assets && npm install" docker-compose exec app mix deps.get && mix compile↑のコードを順次実行することでローカル開発の準備完了
さいごに
これで手元のコードを編集して普段どおりに開発するだけで問題ないはず
Dockerfileの内容的にはKubernetesにデプロイしてもデプロイ後からmix compileが始まるみたいなことは起きないはずなので
安心して運用できる気がします(未検証)
- 投稿日:2019-10-28T09:00:59+09:00
初心者でもDockerでAmazonLinux+Go(Echo)+Mysqlの環境構築しつつ簡単なAPIを作って動かす
DockerでAmazonLinux+Go+Mysqlの環境構築する
PHPerだったけど今度はGoやっていくので環境をDockerで作ってそこで簡単なAPIをGoのフレームワーク「Echo」で作っていく
環境
- Docker Desktop on Windows:19.03.1
- AmazonLinux(イメージ:https://hub.docker.com/_/amazonlinux)
- MySQL:8.0:(イメージ:https://hub.docker.com/_/mysql)
- Go:1.13.3
- labstack/echo
- go-sql-driver/mysql
ちなみに作業環境はWindows10 Proのi7メモリ32GBノートPCです
ディレクトリ構成
|-Dockerfile |-docker-compose.yml |-./src |-main.goDockerfile
まずAmazonLinuxにGoをインストールしたイメージを作成する
FROM amazonlinux:latest ENV GOPATH /go ENV PATH /usr/local/go/bin:/go/bin:$PATH WORKDIR /usr/src # go install RUN yum update -y \ && yum install -y tar \ && yum install -y gzip \ && curl -OL https://dl.google.com/go/go1.13.3.linux-amd64.tar.gz \ && tar -C /usr/local -xzf ./go1.13.3.linux-amd64.tar.gz \ # git install for go get command RUN yum install -y git # go library RUN go get github.com/go-sql-driver/mysql \ && go get github.com/labstack/echo CMD ["go", "run", "main.go"]イメージ生成(docker build -t )
イメージ名は何でもいいですけどここでは
test-aws_go-imgとします(.は同ディレクトリを指す)docker build -t test-aws_go-img .docker-compose.yml
上記でビルドして作成したイメージ(
test-aws_go-img)をdocker-compose.ymlで指定docker-compose.ymlversion: '3.7' services: test-aws_go-img: build: . container_name: test_app # わかりやすいコンテナ名にしておく(任意) ports: - 8080:8080 db: container_name: test_db # わかりやすいコンテナ名にしておく(任意) image: mysql:8.0 command: --default-authentication-plugin=mysql_native_password # 従来の認証方式にしておく volumes: - db-store:/var/lib/mysql - ./logs:/var/log/mysql environment: - MYSQL_DATABASE=test_todo - MYSQL_ROOT_PASSWORD=password - TZ=Asia/Tokyo ports: - 3307:3306 volumes: # データの永続化 db-store:これでDocker周りは完了
main.go
アクセスするとテーブルに登録されているデータをJSONで返すようなかんたんなAPIを作る
main.gopackage main import ( "database/sql" "fmt" "net/http" _ "github.com/go-sql-driver/mysql" "github.com/labstack/echo" ) // JSON用の構造体を定義 type Task struct { ID int `json:"id"` Name string `json:"name"` } func main() { e := echo.New() e.GET("/tasks", getTasks) e.Start(":8080") } func dbConnect() *sql.DB { // DB接続処理 db, err := sql.Open("mysql", "root:password@tcp(test_db)/test_todo") if err != nil { panic(err.Error()) } return db } func getRows(db *sql.DB) *sql.Rows { rows, err := db.Query("SELECT id,name FROM tasks") if err != nil { panic(err.Error()) } return rows } func getTasks(c echo.Context) error { // DB接続 db := dbConnect() defer db.Close() rows := getRows(db) defer rows.Close() task := Task{} var results []Task for rows.Next() { err := rows.Scan(&task.ID, &task.Name) if err != nil { panic(err.Error()) } else { results = append(results, task) } } return c.JSON(http.StatusOK, results) }Docker起動
動くか確認するためにバックグラウンドのオプションはつけないで普通に起動
docker-compose up無事起動したら次に確認用のサンプルデータを入れていく
DBへ接続してデータを入れる
別の画面を開いて(Windowsならコマンドプロンプトとか)MySQLのコンテナの中に入る
docker exec -it test_db bashMySQLへログイン(パスワードは上記で設定した
password)# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 9 Server version: 8.0.18 MySQL Community Server - GPL Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> use test_todo; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed以下のSQLを流す(コピペで可)
SET NAMES utf8; SET time_zone = '+00:00'; SET foreign_key_checks = 0; SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO'; SET NAMES utf8mb4; CREATE DATABASE `test_todo` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */; USE `test_todo`; DROP TABLE IF EXISTS `tasks`; CREATE TABLE `tasks` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; INSERT INTO `tasks` (`id`, `name`) VALUES (1,"go"), (2, "php"), (3, "java"), (4, "html"), (5, "css");念の為入ったか確認しておく
mysql> select * from tasks;URLを叩いてJSONが帰ってくるか確認
準備ができたのでターミナルやらで
curlコマンドを叩くcurl -s http://localhost:8080/tasksすると以下のようにJSONでデータが取得出来る
[{"id":1,"name":"go"},{"id":2,"name":"php"},{"id":3,"name":"java"},{"id":4,"name":"html"},{"id":5,"name":"css"}]以下はChromeからアクセスした際の様子
おわり
- 80%くらいの確率で動くと思うんですが動かなかったらおしえてほしいです
- それ以外でもこうしたほうがいい等あればコメント下さい
参考URL
- https://docs.docker.com/compose/compose-file/
- https://stackoverflow.com/questions/57566060/panic-dial-tcp-127-0-0-13306-connect-connection-refused
- https://tech.speee.jp/entry/2017/08/22/110000
- https://qiita.com/K-juju/items/f6d0eedb9aee5714cb73
- https://shinter8823.hatenablog.com/entry/2019/07/18/015051
- https://qiita.com/zembutsu/items/9e9d80e05e36e882caaa
- https://omohikane.com/golang_on_dokcer/
- https://designsupply-web.com/knowledgeside/3325/
- https://qiita.com/lkeix_/items/b291eb9cebc76deeb916
- https://qiita.com/ShinyaIshikawa/items/fede44cee7c71721247a
などなど

