.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

ココの手順は、全て、Ubuntu18.04 LTSで行っています。

  • クラウド環境に依存しないVM起動後のLinux開発環境のセットアップ。
    (と言いつつ、ユーザ名が、AzureUser?になっているのはアレ)
  • とりあえず、Ubuntuでdotnet開発する環境構築を目的にしても良いカモ。

事前の準備

SSH

以下のように接続する(CMDから接続)。

ssh -i <秘密キーのパス> AzureUser@xxx.xxx.xxx.xxx

※ Azureの接続のSSHタブを参照するなど。

RDS

手順

  • xfceのインストール
    sudo apt-get update
    sudo apt-get -y install xfce4
  • リモート デスクトップ サーバーをインストールして構成する
    sudo apt-get -y install xrdp
    sudo systemctl enable xrdp
  • セッションの開始時に使用するデスクトップ環境を xrdp に指定
    echo xfce4-session >~/.xsession
  • xrdp サービスを再起動し、変更内容を有効にする。
    sudo service xrdp restart
  • ローカル ユーザー アカウントのパスワードを設定
    sudo passwd AzureUser
  • リモート デスクトップ トラフィックにNSGルールを作成する
    az vm open-port --resource-group <rgName> --name <vmName> --port 3389
  • ローカルのリモート デスクトップ クライアントを開き、VMに接続
    • Azureの接続のRDPタブを参照するなど。
    • Windowsと同様、RDP接続のファイルをダウンロードして接続可能。

参考

初期設定

アップデート

sudo apt update
sudo apt upgrade -y
sudo apt autoremove -y
sudo apt autoclean -y
sudo reboot

再接続

タイムゾーン変更

sudo timedatectl set-timezone Asia/Tokyo

日本語化

sudo apt-get install -y language-pack-ja-base language-pack-ja ibus-mozc fonts-takao-pgothic fonts-takao-gothic fonts-takao-mincho
sudo localectl set-locale LANG=ja_JP.UTF-8 LANGUAGE="ja_JP:ja"
source /etc/default/locale

キーボードレイアウト変更

sudo dpkg-reconfigure keyboard-configuration
  • ウィザードにて以下を指定。
    • Generic 105-key PC (Intl.)
    • 日本語
    • 日本語
    • キーボード配置のデフォルト
    • コンポーズキーなし
    • いいえ

Chromeインストール

sudo wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
sudo sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
sudo apt-get update
sudo apt-get install google-chrome-stable -y

インストール

Git

手順

  • インストール
    sudo apt-get install git
  • 確認
    dpkg -l git
  • 初期設定
    git config --global user.name [任意のユーザ名]
    git config --global user.email [任意のユーザ名]

参考

Docker

手順

  • 準備
    • aptのアップデート
      sudo apt update
  • HTTPSでrepositoryと通信するパッケージのインストール
    sudo apt install \
      apt-transport-https \
      ca-certificates \
      curl \
      gnupg-agent \
      software-properties-common
  • Dockerの公式GPG keyを追加
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  • パッケージ・マネージャのリポジトリを追加
    sudo add-apt-repository \
      "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
      $(lsb_release -cs) \
      stable"
  • 再度 aptのアップデート
    sudo apt update
  • インストール
    sudo apt install -y docker-ce
  • 確認
    $ docker
    ...
  • 一般ユーザでも sudo 無しでdockerを使えるようにする
  • 確認
    $ whoami
    AzureUser
    $ docker ps
    Got permission denied while...
  • 一般ユーザをDockerグループに追加
  • 確認
    $ cat /etc/group | grep docker
    docker:x:999:
  • 追加
    sudo gpasswd -a AzureUser docker
  • 確認
    $ cat /etc/group | grep docker
    docker:x:999:AzureUser
  • 使用するソケットを読み込み出来るようにする
  • 権限付与
    sudo chmod 666 /var/run/docker.sock
  • 確認
    $ docker ps
    CONTAINER ID  IMAGE  COMMAND  CREATED  STATUS  PORTS  NAMES
  • 準備
  • バージョン番号の設定(変数に設定)
    export compose='1.26.0'
  • インストール
  • ダウンロードして
    sudo curl -L https://github.com/docker/compose/releases/download/${compose}/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
  • 実行権限を付与し、
    sudo chmod 0755 /usr/local/bin/docker-compose
  • 確認(sodo無
    $ docker-compose -v
    docker-compose version 1.26.0, build d4451659
  • 動作確認
    docker-composeで、voting-appを起動した所。
    DockerOnLinux1

参考

DBMS

WWWサーバ

統合開発環境 (IDE)

Node.js

  • 以下でインストール可能とあるが
    sudo apt install nodejs -y
    sudo apt install npm -y
  • 調べてみると、バージョンが古い。
    $ npm -v
    3.5.2
    $node -v
    v8.10.0
  • n package を導入
    sudo npm install n -g
  • n package を使って node をインストール
    sudo n stable
  • 最初に入れた nodejs, npm を削除。
    sudo apt purge -y nodejs npm
  • ターミナルを再起動し、バージョンを確認する。
    $ npm -v
    6.14.5
    $node -v
    v12.18.1

Visual Studio Code

curl -L -o vscode.deb https://go.microsoft.com/fwlink/?LinkID=760868
sudo apt install -y ./vscode.deb

.NET Core SDK or Runtime

  • Linux リポジトリを構成
    wget https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
    sudo dpkg -i packages-microsoft-prod.deb
  • SDK のインストール
    sudo apt-get update; \
      sudo apt-get install -y apt-transport-https && \
      sudo apt-get update && \
      sudo apt-get install -y dotnet-sdk-3.1
  • ランタイムをインストール
    sudo apt-get update; \
      sudo apt-get install -y apt-transport-https && \
      sudo apt-get update && \
      sudo apt-get install -y aspnetcore-runtime-3.1

参考

追加の動作確認

EvaluateAspNetCoreOnDocker/LocalServicesを実行してみる。

が動くかどうか?

Readmeの手順を、そのまま、
Linux VM上で実行してみた。

DockerOnLinux2

...ボチボチ動くっぽい。

WebApplication1+Dockerコンポーズを実行してみる。

Windows上で準備

  • WebApplication1を新規作成
  • Dockerサポートを追加し、
  • Dockerfileの、
  • ポートのEXPOSEを、
    EXPOSE 80
    EXPOSE 443
  • 以下のように変更する。
    EXPOSE 5000
  • docker-compose.override.ymlを削除し、
    docker-compose.ymlを以下のように変更する。
    version: '3.4'
    
    services:
      webapplication1:
        image: ${DOCKER_REGISTRY-}webapplication1
        build:
          context: .
          dockerfile: WebApplication1/Dockerfile
        ports:
          - "5000:5000"
  • HTTPSで起動しないようにHTTPの5000に固定する(Program.cs)。
    public static IWebHost BuildWebHost(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>()
            .UseUrls("http://0.0.0.0:5000/")
            .Build();
  • これは、以下のエラーを封じるため。
    (HTTPSで起動するには証明書を作成する必要があるらしい)
    Unable to start Kestrel.

ZIPしてWindows → Linuxへ

  • Windows上で圧縮し、
  • unzipのインストールは以下
    sudo apt install unzip
  • Linux上で解凍
    unzip WebApplication1.zip

起動(docker-compose up -d)

  • 起動
  • いつものコマンドで起動できる。
    docker-compose up -d
  • リビルドする場合、「--build 」オプションを指定する。
    $ docker-compose up --build -d
  • 以下のように画面が起動する。
    (Home page が Hoge pageになっている)
    DockerOnLinux3

WebApplication1を新規作成してdebug込みのlaunchを構成する。

Windows上での手順

  • プロジェクト名と同名のフォルダを作成する。
  • 作成したフォルダに cd する。
  • dotnet new mvc する。
    >dotnet new mvc
    The template "ASP.NET Core Web App (Model-View-Controller)" was created successfully.
    This template contains technologies from parties other than Microsoft, see https://aka.ms/aspnetcore/3.1-third-party-notices for details.
    
    Processing post-creation actions...
    Running 'dotnet restore' on C:\Users\nishi\source\repos\WebApplication1\WebApplication1.csproj...
      C:\Users\nishi\source\repos\WebApplication1\WebApplication1.csproj の復元が 172.54 ms で完了しました。
  • dotnet run する。
    コレで launch.json 等が自動生成される模様
    >dotnet run
    info: Microsoft.Hosting.Lifetime[0]
          Now listening on: https://localhost:5001
    info: Microsoft.Hosting.Lifetime[0]
          Now listening on: http://localhost:5000
    info: Microsoft.Hosting.Lifetime[0]
          Application started. Press Ctrl+C to shut down.
    info: Microsoft.Hosting.Lifetime[0]
          Hosting environment: Development
    info: Microsoft.Hosting.Lifetime[0]
          Content root path: C:\Users\nishi\source\repos\WebApplication1
    info: Microsoft.Hosting.Lifetime[0]
          Application is shutting down...
  • URLにアクセスして動作確認する。
  • VS Codeで、フォルダを開く。
  • [Run]に移動し(Ctrl + Shift + D)、以下を押下。
    To customize Run and Debug [create a launch.json file].
  • [.NET Core] を選択する(存在しない場合、C#のExtensionをインストール)。
  • [Start Debugging]で、Debug実行を開始する。

Linux上での手順

  • Windows上での手順とほぼ同様だが、
    Unable to start Kestrel.
    の問題のために、そのままでは、dotnet run できない。
  • HTTPSで起動しないようにHTTPの5000に固定する(Program.cs)。
    public static void Main(string[] args)
    {
      CreateHostBuilder(args).Build().Run();
    }
    
    public static IHostBuilder CreateHostBuilder(string[] args) =>
      Host.CreateDefaultBuilder(args)
        .ConfigureWebHostDefaults(webBuilder =>
        {
          webBuilder.UseStartup<Startup>()
            .UseUrls("http://0.0.0.0:5000/");
        });
  • そして、[Start Debugging]で、Debug実行を開始できる。

参考

vi

apt-get、apt

Hyper-V + Ubuntu Desktop

Ubuntu Japanese Team

ubuntu-ja-18.04.3-desktop-amd64.iso を取得。


添付ファイル: file3.png 28件 [詳細] file2.png 34件 [詳細] file1.png 25件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-08-21 (金) 14:23:30 (33d)