20191028のdockerに関する記事は8件です。

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つのファイルを作成する。

Dockerfile
FROM 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 . /app

docker-compose.yml
version: '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:
Gemfile
source '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.yml
default: &default
  adapter: mysql2
  encoding: utf8
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  username: root
  password: password
  host: db

passwordとhostの部分をdocker-compose.ymlの記述と合わせます。

$ docker-compose upコマンドでコンテナを立ち上げ、localhost:3000に接続し、RailsのHello World画面が表示されれば無事成功です!

Vue.jsの導入

vue.jsをRailsで使用できるようにするためにまずはWebpackerの導入が必要。Gemfileに以下を追加します。

Gemfile
gem '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) を導入する

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

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.04

VMのNetworkとMemoryを設定する(Vagrantfileに書く)

bash
iguchi@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を起動する

bash
iguchi@igc-mbp:~/my-vagrant/jira-confluence-study$ vagrant up

起動したVMにssh接続する

bash
iguchi@igc-mbp:~/my-vagrant/jira-confluence-study$ vagrant ssh

VMにDockerをinstallする

bash
vagrant@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 docker

Dockerを使ってJIRAをinstallする

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-software

httpでJiraにアクセスし、GUIの指示に従って設定

http://192.168.33.10:8080

Dockerを使ってConfluenceをinstallする

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-server

httpでConfluenceにアクセスし、GUIの指示に従って設定

http://192.168.33.10:8090

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

エンジニアがWordPressでWebサイト作ってみる~準備篇~

はじめに

Webデザインの知識はからっきしなエンジニアだけど知り合いに飲食店のHP作成を頼まれたからWordPressで作ってみる。

準備

どのように習熟していけば良いかを知る

以下のサイトを参考にした。
WordPress未経験から1ヶ月でテーマを作成するまでの学習法

dockerでwordpressとMySQLコンテナをインストール

以下のQiitaを参考にした。
docker-composeでwordpress環境をサクッと構築する

wordpressに入門する

以下のサイトを参考にした。
WordPress入門
ドットインストールという動画でプログラミングを学べるサイト。dockerを使っていれば「#02 WordPressをインストールしよう」のDB作成などはスキップできる。docker最高。

動画で参考になった情報

WEBサイト制作

別ページに今度まとめます。(まだ作ってない)

ローカルから本番サーバへ移行

ローカルWordPressで作成して本番サーバに移行予定。
以下が参考になりそう?

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

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                  0B

Original by Github issue

https://github.com/YumaInaura/YumaInaura/issues/2630

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

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.yml
  web:
    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.yml
  web:
    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の記述の型がおかしくて怒られるようになるので、注意しないといけないです。で、オススメされたのがこちら。

code-beautify

これのyamlチェッカーを使うと、ミスが減るんじゃないでしょうかとのこと。確かにその通りなので、以降使っていきたいと思います。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

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 Chrome

Laravel 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=4444

Laravel 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を実行してみましょう。
問題なくブラウザテストが通ったら完了です。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

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が始まるみたいなことは起きないはずなので
安心して運用できる気がします(未検証)

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

初心者でもDockerでAmazonLinux+Go(Echo)+Mysqlの環境構築しつつ簡単なAPIを作って動かす

DockerでAmazonLinux+Go+Mysqlの環境構築する

PHPerだったけど今度はGoやっていくので環境をDockerで作ってそこで簡単なAPIをGoのフレームワーク「Echo」で作っていく

環境

ちなみに作業環境はWindows10 Proのi7メモリ32GBノートPCです

ディレクトリ構成

|-Dockerfile
|-docker-compose.yml
|-./src
    |-main.go

Dockerfile

まず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.yml
version: '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.go
package 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 bash

MySQLへログイン(パスワードは上記で設定した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"}]

以下GitBashから実行した様子
WS000012.JPG

以下はChromeからアクセスした際の様子

WS000016.JPG

おわり

  • 80%くらいの確率で動くと思うんですが動かなかったらおしえてほしいです
  • それ以外でもこうしたほうがいい等あればコメント下さい

参考URL

などなど

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む