kichij.org 2011–2019

2018 · 未分類

少人数で高速でスマホとwebサービスを立ち上げたかったらdocker、letsencrypt、swagger、Flutter

· kichij.org ブログ

[画像:未回収(アーカイブ未収録)]

少人数で高速でスマホとwebサービスを立ち上げたかったらdocker、letsencrypt、swagger、Flutter

概要

スマホアプリを作る場合、API用のサーバ立ててスマホアプリのクライアントからRESTでジャラジャラ繋ぐと思うんだけど、サーバ側の構築にコストかけられない。
ドメイン取ってコードをデプロイしたらさっとAPIサーバくらいは立って欲しいと思う。その場合、DockerでさっとSSL化自動で証明書取得されると素敵じゃないですか。

Docker

それならばdockerイメージでいいのがあったので、使い倒しましょう。

jwilder/nginx-proxy
jrcs/letsencrypt-nginx-proxy-companion

上のDockerイメージをdocker-compose.ymlに記述して、docker-compose up -dを実行するだけで、let’s Encryptによる自動SSL化機能のついたletsencrypt-nginx-proxy-companionと、nginx-proxyが立ち上がります。

nginx-proxy/docker-compose.yml  
version: '2'  
services:  
  nginx-proxy:  
    image: jwilder/nginx-proxy  
    container_name: nginx-proxy  
    ports:  
      - 80:80  
      - 443:443  
    volumes:  
      - ./certs:/etc/nginx/certs:ro  
      - /etc/nginx/vhost.d  
      - /usr/share/nginx/html  
      - /var/run/docker.sock:/tmp/docker.sock:ro  
    restart: always  
  letsencrypt-nginx-proxy-companion:  
    image: jrcs/letsencrypt-nginx-proxy-companion  
    container_name: nginx-letsencrypt  
    volumes:  
      - ./certs:/etc/nginx/certs  
      - /var/run/docker.sock:/var/run/docker.sock:ro  
    volumes_from:  
      - nginx-proxy  
    restart: always  
  
参考URL: Dockerで簡単にマルチドメインかつSSL証明(自動更新) nginx-proxyとLetsEncrypt

Swagger

API側はSwaggerでサクッと作ります。

Swagger Editorを使ってswagger.yml(swagger.jsonでも可)を書けば、モックとして起動もできるし、サーバー側、クライアント側それぞれの言語でのソースも自動生成できる。最終的には、APIドキュメントも生成できるので、一度yaml、またはjsonを作って仕舞えば、同じAPI設計のアプリを量産できる優れもの。

Flutter

問題はアプリ側、こちらはさっと作る手段がまだなくてせいぜいFlutterでAndroidとiOSを同時にビルドするくらいなもの。

もう少し検証と実践を積んだら記事にします。

結論

じゃんじゃんアプリとWebを作って世の中の技術向上に貢献しましょう!

補足

このサイトも、上記のDocker、Let’s Encryptの環境に移行しました。

元のページ: https://kichij.org/posts/2018/10/%E5%B0%91%E4%BA%BA%E6%95%B0%E3%81%A7%E9%AB%98%E9%80%9F%E3%81%A7%E3%82%B9%E3%83%9E%E3%83%9B%E3%81%A8web%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%82%92%E7%AB%8B%E3%81%A1%E4%B8%8A%E3%81%92%E3%81%9F/