LoginSignup
2
1

More than 3 years have passed since last update.

code-server ローカル環境篇(8) DBなども含めたMVC環境を用意してみよう (5)

Last updated at Posted at 2019-12-08

これは、2019年 code-server に Advent Calender の 第9日目の記事です。今回も、code-server って何だろう?と言う事を解説していきます。

(1) code-server って何?
(2) Dockerで独自のcode-server 環境を作って見る
(3) VSCode の Plugin を 利用してみる
(4) DBなども含めたMVC環境を用意してみよう (1)
(5) DBなども含めたMVC環境を用意してみよう (2)
(6) DBなども含めたMVC環境を用意してみよう (3)
(7) DBなども含めたMVC環境を用意してみよう (4)
(8) DBなども含めたMVC環境を用意してみよう (5)
(9) DBなども含めたMVC環境を用意してみよう (6)
(10) おまけ

(NEXT->) オンライン環境篇 1日目 作業環境を整備する

(..) ローカルで、DBなどの環境も含めて構築するには
(..) オンライン上に置くには?
(..) K8Sなどの最近の流行りの環境と連携するには?
(..) Code-Serverを改造して、より良くしたい

前回の続きで、db の初期化などを、していきます。

今回の何?

データの初期化もDocker-Composeで!!

DBの初期化処理を行います。

開発環境を共有する場合、DBのデータも共有しておきたい場合があります。フレームワークのDBの管理システムを使う事もありますが、ここでは、MySQL Docker Container の機能を利用してみます。

初期化用のSQLを書く

./mysqld/setup/001_setup.sql_
CREATE DATABASE IF NOT EXISTS app_db;
USE app_db;

CREATE TABLE users (
    id int,
    name varchar(255),
    email varchar(512)
);

INSERT INTO users (
    id, name, email
) VALUES (
    1, 'one', 'kyorohiro+one@example.com'
);

SQLをKickするScriptを書く

./mysqld/setup/setup.sh
#!/bin/sh

"${mysql[@]}" < /docker-entrypoint-initdb.d/001_setup.sql_

docker-composeに設定を追加

docker-compose.yml
version: '3'
services: 
  app:
    build: ./app
    ports: 
      - 8443:8443
      - 8080:8080
    volumes:
      - ./app:/works/app
    links:
      - mysqld
    command: /works/code-server --allow-http --auth none --port 8443 /works/app
  mysqld:
    # https://hub.docker.com/_/mysql/
    image: mysql:5.7
    ports: 
      - "3306:3306"
    environment: 
      MYSQL_ROOT_PASSWORD: passwd
      #MYSQL_DATABASE: hello
      #MYSQL_USER: user
      #MYSQL_PASSWORD: password
    volumes:
      - ./mysqld/init/:/docker-entrypoint-initdb.d/:rw
      # 次回起動時に保存したデータを再利用したい場合は、以下のコメントをOFF
      # - ./.mysqld:/var/lib/mysql
  phpmyadmin:
    # https://hub.docker.com/r/phpmyadmin/phpmyadmin
    image: phpmyadmin/phpmyadmin:4.8.5
    environment:
      PMA_HOST: mysqld
      PMA_USER: root
      PMA_PASSWORD: passwd
    links:
      - mysqld
    ports:
      - '18080:80'

mysql container の場合、 /docker-entrypoint-initdb.d 配下の
shファイルとsqlファイルを読み込んでくれます。

起動してみよう

$ docker-compose build
$ docker-compose up -d

ラウザ-で 'http://127.0.0.1:18080/' にアクセスする。

Screen Shot 2019-12-08 at 16.47.30.png

おっ、追加されていますね!!

次回

Flask で、APIサーバーを作成してみます。

PS

ソース

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