Slide 1

Slide 1 text

© SIOS Technology, Inc. All rights Reserved. VS Code Meetup 〜Remote Developmentと Dockerで快適Web開発〜 技術部 2019年12⽉18⽇ 武井 宜⾏ サイオステクノロジー株式会社

Slide 2

Slide 2 text

© SIOS Technology, Inc. All rights Reserved. About me 2 Internal Only BCPVUNF Noriyuki TAKEI ෢Ҫ ٓߦ Information • サイオステクノロジー株式会社 • クラウドネイティブアプリケーション • 千葉県在住 Favorites • Azure • Squash • Sweets blog https://tech-lab.sios.jp/ core skill Azure Kubernetes Service Azure Bot Service

Slide 3

Slide 3 text

© SIOS Technology, Inc. All rights Reserved. VS Code Meetup 3 Internal Only みなさん、 Visual Studio Codeの Remote Development 使ってますか︖

Slide 4

Slide 4 text

© SIOS Technology, Inc. All rights Reserved. VS Code Meetup 4 Internal Only リモートサーバー上のコードを直接編集が可能 SSHで接続可能なリモートサーバーやコンテナ、WSL上に あるファイルをVisual Studio Codeから直接編集できる Remote Developmentとは︖ 拡張機能をリモートサーバーにインストールし、 リモートサーバー上で動作させることが可能

Slide 5

Slide 5 text

© SIOS Technology, Inc. All rights Reserved. VS Code Meetup 5 Internal Only 開発エンジニア GitHub Jenkins Docker hubなどの Dockerレポジトリ Kubernetes 開発エンジニアが ソースをコミット します。 GitHubのwebhookの機能を 使って、Jenkinsの特定のURL を叩きます。 Docker使うとCI/CD的にウレシイ

Slide 6

Slide 6 text

© SIOS Technology, Inc. All rights Reserved. VS Code Meetup 6 Internal Only 開発エンジニア GitHub Jenkins Docker hubなどの Dockerレポジトリ Kubernetes Dockerイメージ Docker使うとCI/CD的にウレシイ webhookをトリガーにしてJenkins が起動する。まずはじめに、ソース コードをgit pullします。 Dockerのコマンドで、ビルドしたア プリケーションを含むDockerイメー ジを作成します。

Slide 7

Slide 7 text

© SIOS Technology, Inc. All rights Reserved. VS Code Meetup 7 Internal Only 開発エンジニア GitHub Jenkins Docker hubなどの Dockerレポジトリ Kubernetes Docker使うとCI/CD的にウレシイ DockerイメージをDockerレポジト リにプッシュします。 webookでステージング環境の特定 のURLが叩かれたことをトリガーに して、Dockerリポジトリから Dockerイメージをpullします。

Slide 8

Slide 8 text

© SIOS Technology, Inc. All rights Reserved. VS Code Meetup 8 Internal Only Remote Developmentがないとどうなるの︖ Apache PHP ソースコード Dockerコンテナ Docker Engine OS ソースコード PC 同期 Visual Studio Code デバッグ Xdebug 編集

Slide 9

Slide 9 text

© SIOS Technology, Inc. All rights Reserved. VS Code Meetup 9 Internal Only Remote Developmentがないとどうなるの︖

Slide 10

Slide 10 text

© SIOS Technology, Inc. All rights Reserved. VS Code Meetup 10 Internal Only Remote Developmentがあると…(^o^) Apache PHP ソースコード Dockerコンテナ Docker Engine OS PC Visual Studio Code デバッグ 編集 Xdebug

Slide 11

Slide 11 text

© SIOS Technology, Inc. All rights Reserved. VS Code Meetup 11 Internal Only Remote Developmentがあると…(^o^)

Slide 12

Slide 12 text

© SIOS Technology, Inc. All rights Reserved. VS Code Meetup 12 Internal Only インストールは ラクチン

Slide 13

Slide 13 text

© SIOS Technology, Inc. All rights Reserved. VS Code Meetup 13 Internal Only Remote Developmentを可能にする拡張機能をインストールします。左 部メニュー最下部にあるアイコン(四⾓が4つ並んでいるもの)をクリックし、 「remote development」と⼊⼒し、Remote Developmentの拡張機能 をインストールします。

Slide 14

Slide 14 text

© SIOS Technology, Inc. All rights Reserved. VS Code Meetup 14 Internal Only Visual Studio Codeで、PHPのデバッグが可能になる拡張機能をインストール します。左下の緑のボタンをクリックして下さい。

Slide 15

Slide 15 text

© SIOS Technology, Inc. All rights Reserved. VS Code Meetup 15 Internal Only これだけ

Slide 16

Slide 16 text

© SIOS Technology, Inc. All rights Reserved. VS Code Meetup 16 Internal Only これから 簡単なPHPアプリを Dockerコンテナ上で デバッグします。

Slide 17

Slide 17 text

© SIOS Technology, Inc. All rights Reserved. VS Code Meetup 17 Internal Only Dockerfile docker-compose.yml html index.php xdebug xdebug.ini .devcontainer devcontainer.json → テスト⽤のスクリプト → xdebugの設定ファイル → コンテナの設定ファイル ファイル構成は以下のとおりです。

Slide 18

Slide 18 text

© SIOS Technology, Inc. All rights Reserved. VS Code Meetup 18 Internal Only # Apache上でPHPが動くDockerイメージを取得 FROM php:7.3.8-apache # xdebugの設定をコンテナにコピー ADD xdebug/xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini # xdebugのインストール RUN pecl install xdebug && docker-php-ext-enable xdebug %PDLFSGJMF

Slide 19

Slide 19 text

© SIOS Technology, Inc. All rights Reserved. VS Code Meetup 19 Internal Only version: '3' services: php: build: . ports: - '8080:80ʼ # ローカルのhtmlディレクトリをコンテナの/var/www/htmlにマウント volumes: - ./html:/var/www/html EPDLFSDPNQPTFZNM

Slide 20

Slide 20 text

© SIOS Technology, Inc. All rights Reserved. VS Code Meetup 20 Internal Only // なんの変哲もないただのPHPスクリプト IUNMJOEFYQIQ

Slide 21

Slide 21 text

© SIOS Technology, Inc. All rights Reserved. VS Code Meetup 21 Internal Only # リモートデバッグ接続先です。今回はサーバー側にXdebugが動くので、 # 127.0.0.1を指定します。 xdebug.remote_host = 127.0.0.1 # リモートデバッグを⾃動で開始します。 xdebug.remote_autostart = 1 # リモートデバッグを有効にします。 xdebug.remote_enable = 1 # リモートデバッグの接続ポートです。 xdebug.remote_port = 9000 YEFCVHJOJ

Slide 22

Slide 22 text

© SIOS Technology, Inc. All rights Reserved. VS Code Meetup 22 Internal Only { # 任意の名前 "name": "Existing Docker Compose (Extend)", # Remoteでログインしたいコンテナを作成するためのdocker compose "dockerComposeFile": [ "../docker-compose.yml", ], # 先程指定したdocker composeファイル内に定義しているサービスで # 起動したいもの "service": "php", # コンテナに⼊ったときに下記のディレクトリにcdします。 "workspaceFolder": "/var/www/html", # コンテナが⽣成されたときにインストールする拡張機能です。 # これを指定しないと、コンテナが再⽣成すると拡張機能が消えます。 "extensions": ["felixfbecker.php-debug"] } EFWDPOUBJOFSEFWDPOUBJOFSKTPO

Slide 23

Slide 23 text

© SIOS Technology, Inc. All rights Reserved. VS Code Meetup 23 Internal Only Dockerコンテナ内部 のTerminalにすでに ログイン状態のものが 表⽰されます。 デバッグできます。

Slide 24

Slide 24 text

© SIOS Technology, Inc. All rights Reserved. さいごに 24 Internal Only 本資料の内容は 以下のブログで公開しています。 技術ブログ「SIOS TECH.LAB」 https://tech-lab.sios.jp/

Slide 25

Slide 25 text

© SIOS Technology, Inc. All rights Reserved. さいごに 25 Internal Only 先⽉発売のSoftware Designの Azure特集に執筆しました。