FirefoxでTweetする時のお手軽拡張ツール
Firefoxで見つけたページを簡単にTwitterでTweetしたくて無いかなー
と思っていたらあったので!
忘れても大丈夫なようにメモをかねて
Share on Twitter
addons.mozilla.org
Blazor Preview5 から Preview7へ (デフォルト状態ではないものの場合)
Preview7が出てから、何故かうまくいかなくて躓いていたので、それの解消が出来たのでうれしくなって記述しています。
※想定通り出来ていて、何故か動かないという人は、gitの管理外ファイルを削除すると直る可能性があります。(一番最後に記述していますが、私はそれで問題解決されました)
binとobj消しただけではダメでした。
Preview5からPreview7への移行作業内容
Winmergeで比較
・App.razor
>>
内容全置換
Visual Studio 2019 v16.2 にアップデート・・・おや?エラーが現れた(;゚ロ゚)
Visual Studio 2019 v16.2 にアップデートしたら・・・エラーが出るようになりました。
内容は以下です、、、
2カ所:
エラー NETSDK1045 現在の .NET SDK は、ターゲットとする .NET Core 3.0 をサポートしていません。.NET Core 2.1 以下をターゲットとするか、.NET Core 3.0 をサポートする .NET SDK のバージョンを使用してください。 MyHP.Server C:\Program Files\dotnet\sdk\2.1.801\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.TargetFrameworkInference.targets 137
1カ所
重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態
エラー NETSDK1045 現在の .NET SDK は、ターゲットとする .NET Core 3.0 をサポートしていません。.NET Core 2.1 以下をターゲットとするか、.NET Core 3.0 をサポートする .NET SDK のバージョンを使用してください。 MyHP.Server C:\Program Files\dotnet\sdk\2.1.801\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.TargetFrameworkInference.targets 137
これ、原因を探ると・・・
・・・
・・・
・・・
かなり色々、インストールなどを試しましたが、、、
Visual Studio 2019 Preview
を利用すれば良いと良いというのが解決策となっていました。
Preview5は動くはず・・・動かない。
Preview7でClient側がある物がないので、そういうこと?
Blazorの更新のBlogが上がってたのに・・・気がつかなかった・・・orz
ASP.NET Blog | ASP.NET Core and Blazor updates in .NET Core 3.0 Preview 7
これでちょっと試します。
拡張機能で、Blazorテンプレートが不要になり、以下のコマンドを実行することで良くなるそうです。
dotnet new -i Microsoft.AspNetCore.Blazor.Templates::3.0.0-preview7.19365.7
私の環境ではなりませんでしたが・・・英語の理解力・・・orz
※以前の状態で取ってある、Preview6のプロジェクトをそのまま利用する場合は、問題なく、UPし、利用することが出来ました。
おや?Blazorがレベルアップしたようだ(Preview7)
元資料:
https://github.com/dotnet/core/blob/master/release-notes/3.0/preview/3.0.0-preview7.md
以下は自分が読んで認識した内容なので間違ってたらご指摘いただけると助かります。
利用可能な物:VisualStudio2019 16.3 Preview 1
変更内容:Preview7
・dotNet Core SDKのサイズの改善
今、すごく遅いので効果に期待
・SOSを更新
現在は何処にも入っていなくて、欲しいのであれば自分でやってねということだそうです。
恐らく、Coreのデバッグに利用する物と思われます。(下記、備考参照)
すべてのバージョンが対象と書いてあります。(Linuxとかでも使える便利な物だそうです)
アクセス先:https://github.com/dotnet/diagnostics#installing-sos
Windows版:https://github.com/dotnet/diagnostics/blob/master/documentation/sos-debugging-extension-windows.md
・NetTraceはNetPerfに置き換えられたそうです。
・以下のbugs と featuresの確認をすると良いそうです。
・CoreCLR
・CoreFX
・ASP.NET Core(Blazor関連はこれなので、気になるのがあったら読むと良いと思います。)
https://github.com/aspnet/AspNetCore/issues?q=is%3Aissue+milestone%3A3.0.0-preview7+label%3ADone+label%3Abug
備考:
・SOSってなんぞ?と思ったので。
dotnet core process のデバッグに利用される物?だそうです。(知識が足りないので間違ってるかもしれません。)
参考:1
https://blogs.msdn.microsoft.com/rohithrajan/2018/03/26/looking-inside-a-net-core-process-using-windbg/
We have SOS.dll for every version and bitness of .NET framework (.NET 1.1,2.0,4.0 etc) .
So for .NET core process debugging we need to use .NET Core's sos.dll .
And the good part is that sos.dll is shipped with the dotnet and you will find it on参考:2
https://devblogs.microsoft.com/premier-developer/debugging-net-core-with-sos-everywhere/
・NetTraceは興味ないので割愛
(サーバーに対するデバッグかな?)
Githubでpullを行う際にログインやパスワード入力を必要としない
ついでに git も ReadOnly となるので、安全と思われる
GithubのDeploy keysを利用する
参考:
GitHubでssh接続する手順~公開鍵・秘密鍵の生成から~ - Qiita
※ssh-keygenを行う際は別名で作成するようにすること
ファイル名を指定してSSHキーを作成
cd .ssh
ssh-keygen -t rsa -b 4096 -C "メールアドレス" -f id_github_rsa
.sshフォルダに以下のファイルを作成する
ファイル名:config
※IdentityFile は "~/"と".ssh"の間にスペースはありません。(あると思って勘違いしてた・・・)
Host github github.com
HostName github.com
IdentityFile ~/.ssh/id_github_rsa
User git
接続確認
以下のを参考にした場合は、git cloneよりやり直す必要がある。
さくらVPSでCentOS7を利用してSSL付き 個人運用環境構築 - 雷って幻想的だよね?
OKであれば、shで実行できるようにしておく
ファイル名:rebuild_develop.sh
echo git pull ...
cd ~/develop/MyHP
git checkout develop
git pullecho git pull end !
echo docker-compose buid ...
cd ~/develop
docker-compose build --no-cacheecho docker-compose up ...
docker-compose up -d --force-recreateecho finish !
EOS
さくらVPSでCentOS7を利用してSSL付き 個人運用環境構築
さくらVPSでCentOS7を利用してSSL付き 個人運用環境構築
自分と同じ事をしたい人がいたらご参考にしてください。
目的・内容:
・VPSで自分のドメイン1つで、masterブランチの公開と、developブランチの公開を行う。
・作業はWindows+Teratermを想定しています。
・Dockerfile,docker-compose,SSL(letsencrypt,独自ドメイン),nginxを利用しています。
・セキュリティはここに書いてあるのがすべてではないのでご自身で最適な設定を行ってください。
・2019/07/21の実施で問題なく表示出来ているのを確認済み
・基本的にBlazorの公開を想定していますが、Dockerfileを書ける物であれば何でも出来ると思います。
以下、独自ドメインをexample.comとする。
また、wwwと同じようにエントリ名として「develop」を登録して更新されていることを前提としています。
公開サイト構成:
┬example.com(masterブランチのサイト公開を想定)
├www.example.com(上に同じ)
└develop.example.com(developブランチのサイト公開を想定
考慮外:
・gitより最新コードを落とすのは自動化されていません。
・ポート:111が解放されたままになっているので、ご注意ください。
作業開始です。。。
さくらVPSでCentOS 7を選択して、実行。
スクリプトはなしです。
ユーザ作成:
useradd ユーザー名
passwd ユーザー名
usermod -G wheel ユーザ名
TeraTermで作成したユーザでログインし直す(パスワードログイン)
公開鍵認証でTeraTermを利用するための準備
TeraTermでid_rsa.pubをコピーします(画面上にD&D)
mkdir .ssh
chmod 700 .ssh
cat id_rsa.pub > .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
rm -f id_rsa.pub
id_rsa.pubの作成は下記のサイトなどを参考にすると良いと思います。
公開鍵認証によるSSH接続 - Tera Termの使い方 - Linux入門 - Webkaru
SSHのポート設定変更(大事)
その1
#「/Port]でvimの検索が出来る
# N:後方に連続で検索
# 「:wq」で保存して終了
でPortを変更する。
#Port 22
↓
Port 好きな物(登録済みポート:1024-49451の範囲を避けて、49452以降が望ましい)
その2
sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/ssh-new.xml
sudo vim /etc/firewalld/services/ssh-new.xml
編集画面でその1で設定したポートに変更する(22→好きな物)
SSHと記述してある箇所をSSH-NEWに書き換える。
firewallの起動設定
sudo systemctl start firewalld.service
sudo systemctl enable firewalld.service
新しいSSHを利用できるようにする
再起動
TeraTermの自動ログインファイル設定(ファイル名:XXX.ttl)でログインを確認する
※下記の22は上記で設定したポートに変えると良いです。
username = 'ログインユーザ名'
hostname = 'VPSのIPアドレス(XXX.XXX.XXX.XXX)'
keyfile = '上記で作成した「id_rsa」のあるフォルダ'
msg = 'Enter password for user '
strconcat msg username
passwordbox msg 'Get password'
msg = hostname
strconcat msg ':22 /ssh /auth=publickey /user=' ; 「/auth=publickey」で認証方法として公開鍵認証を指定
strconcat msg username
strconcat msg ' /keyfile='
strconcat msg keyfile
strconcat msg ' /passwd="'
strconcat msg inputstr
strconcat msg '"'
connect msg
以下はアクセスできたら行う
公開鍵認証以外のログイン処理を無効化する
変更内容
PermitRootLogin no
PasswordAuthentication no
旧SSHのポートを解除
OSの再起動
sudo reboot
firewallの解放
参考:CentOS 7 firewalld よく使うコマンド - Qiita
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
#再読込
sudo firewall-cmd --reload
#確認
sudo firewall-cmd --list-all
外部からポートの解放を確認する
こんな感じの表示になる
PORT STATE SERVICE
80/tcp close http
※これで動かし始めればつながったのでOK
OSのアップデート
※ここでportの111が解放されるのでご注意ください。調べても何故か閉まらないので、パケットフィルタで逃げます。
sudo yum -y update
dockerをインストール
※1行目は恐らく無くてもない状態
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum -y install docker-ce docker-ce-cli containerd.iosudo systemctl start docker
sudo systemctl enable docker
dockerでsudoなしで実行できるようにする
※グループはすでにあるはず・・・
sudo groupadd docker
sudo usermod -aG docker ユーザー名
sudo gpasswd -a $USER docker
TeraTermで再ログインする(上記のsudo無し実行を反映するため)(面倒なのでreboot)
sudo reboot
docker-composeを入れる
sudo curl -L "https://github.com/docker/compose/releases/download/1.23.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
さくらVPSのパケットフィルタでhttp,httpsを解放する。
ここ忘れて、ものすごく時間を無駄に・・・
docker-composeでSSL化しつつ実行
以下、フォルダ構造
ユーザTOP
├www
│├docker-compose.yml
│└Dockerfile(好きなアプリ)
├develop
│├docker-compose.yml
│└Dockerfile(好きなアプリ)
└nginx
└docker-compose.yml
コードをCloneする
cd ~/www
git clone XXX
cd ~/develop
git clone XXX
git checkout develop
ファイル準備
nginx/docker-compose.ymlの中身
version: "2"
services:
nginx-proxy:
image: jwilder/nginx-proxy
container_name: nginx-proxy
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
- ./certs:/etc/nginx/certs:ro
- /etc/nginx/vhost.d
- /usr/share/nginx/html
restart: always
networks:
- shared
letsencrypt:
image: jrcs/letsencrypt-nginx-proxy-companion
container_name: letsencrypt
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./certs:/etc/nginx/certs:rw
volumes_from:
- nginx-proxy
restart: always
networks:
- shared
networks:
shared:
external: true
www/docker-compose.ymlの中身
※アプリ:gitでCloneしたフォルダ名
※メールアドレス
version: '3.3'
services:
myapp:
build:
context: ./アプリ
dockerfile: Dockerfile
environment:
VIRTUAL_HOST: example.com,www.example.com # ← カンマ区切り指定
LETSENCRYPT_HOST: example.com,www.example.com # ← カンマ区切り指定
LETSENCRYPT_EMAIL: メールアドレス
networks:
default:
external:
name: shared
develop/docker-compose.ymlの中身
※アプリ:gitでCloneしたフォルダ名
※メールアドレス
version: '3.3'
services:
myapp:
build:
context: ./アプリ
dockerfile: Dockerfile
environment:
VIRTUAL_HOST: develop.example.com # ← カンマ区切り指定
LETSENCRYPT_HOST: develop.example.com # ← カンマ区切り指定
LETSENCRYPT_EMAIL: メールアドレス
networks:
default:
external:
name: shared
nginx、アプリを実行する
cd ~/nginx
docker-compose build --no-cache
docker-compose up -d --force-recreate
cd ~/www
docker-compose build --no-cache
docker-compose up -d --force-recreate
cd ~/develop
docker-compose build --no-cache
docker-compose up -d --force-recreate
以上で、ドメイン設定がされていればサイトが表示されると思います。
1度でも動作確認している場合は、サイトのキャッシュにご注意ください。
上記で利用しているBlazorのDocker情報は以下になります。
Blazorのバージョン(SDK):Nuget:3.0.0-preview5-19227-01
Dockerfile
FROM mcr.microsoft.com/dotnet/core/aspnet:3.0.0-preview5-alpine3.9 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443FROM mcr.microsoft.com/dotnet/core/sdk:3.0.100-preview5-alpine3.9 AS build
WORKDIR /src
COPY ["MyHP.Server/MyHP.Server.csproj", "MyHP.Server/"]
COPY ["MyHP.Shared/MyHP.Shared.csproj", "MyHP.Shared/"]
COPY ["MyHP.Client/MyHP.Client.csproj", "MyHP.Client/"]
RUN dotnet restore "MyHP.Server/MyHP.Server.csproj"
COPY . .
WORKDIR "/src/MyHP.Server"
RUN dotnet build "MyHP.Server.csproj" -c Release -o /appFROM build AS publish
RUN dotnet publish "MyHP.Server.csproj" -c Release -o /appFROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "MyHP.Server.dll"]
git cloneをスクリプトで実行する場合は以下をご参照ください。
https://raiwingprogram.hateblo.jp/entry/2019/07/21/233014
Docker MySQL docker-composeでの実行と、バックアップとリストア
参考にしたサイト:
https://qiita.com/A-Kira/items/f401aea261693c395966
動作確認:
Windows10 Pro build 17763
docker -v :Docker version 18.09.2, build 6247962
docker-compose -v:docker-compose version 1.23.2, build 1110ad01
docker-compose.ymlの中身
${}は環境変数(Windowsはシステムからの設定、Linuxは.evn)
version: '3'
services:
# MySQL
db:
image: mysql:5.7
container_name: db_host
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD_SETTING}
MYSQL_DATABASE: ${MYSQL_DATABASE_SETTING}
MYSQL_USER: ${MYSQL_USER_SETTING}
MYSQL_PASSWORD: ${MYSQL_PASSWORD_SETTING}
TZ: 'Asia/Tokyo'
command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
volumes:
- ./docker/db/data:/var/lib/mysql
ports:
- 3306:3306
# phpMyAdmin
phpmyadmin:
container_name: php
image: phpmyadmin/phpmyadmin
environment:
- PMA_ARBITRARY=1
- PMA_HOSTS=db_host
- PMA_USER=root
- PMA_PASSWORD=${MYSQL_ROOT_PASSWORD_SETTING}
ports:
- 8080:80
docker起動
※docker-compose.ymlがあるフォルダに移動していること
docker-compose up -d
# 確認する際は、「-d」なしで実行する
MySQLのダンプを復元
docker cp .\db_host.sql db_host:/tmp/dump.sql
docker exec -it db_host bash
mysql -u root -p < /tmp/dump.sql
MySQLのダンプを作成
docker exec -it db_host bash
mysqldump --databases rairairai -uroot -p > dump.sql
exit
docker cp db_host:dump.sql dump.sql
※shで完結できないかなぁ…
dockerの終了
docker-compose down -v