Linux(CentOS7)で、ASP.NET Coreアプリを公開(publish)する
ASP.NET Coreプロジェクトをdotnet run
コマンドで実行し、動作確認が出来ました。
でもちょっと、環境が乱雑。
いずれアプリケーションを公開する(はず)なので、環境を整備します。
フォルダ構成を整理
前回は、手早く動作確認するため/home/sample
にファイル一式をコピペしました。
しかし今後、自社PHPサービスや GitBucket、Jenkins を平行稼働する予定なので、Webをまとめたフォルダ/home/webroot
の配下に持っていきます。
[root@centos7 ~]# mkdir -p /home/webroot/dotnet_sample/bin [root@centos7 ~]# mv /home/sample /home/webroot/dotnet_sample/src
publishコマンドを試す
dotnet run
/dotnet build
は [プロジェクト]/bin 下にバイナリを生成してくれますが、実行に必要な全ての依存dllを書き出してくれるわけではありません。
バイナリ一式を全て出力するには、dotnet publish
コマンドを実行します。
詳しくはこちらに記述がありました。日本語じゃーん!さんくす!
早速、Releaseビルドを指定パスに書き出してみます。
[root@centos7 ~]# cd /home/webroot/dotnet_sample/src/src/WebApplication1 [root@centos7 WebApplication1]# dotnet publish --configuration Release --output /home/webroot/dotnet_sample/bin/ Publishing WebApplication1 for .NETCoreApp,Version=v1.0 No executable found matching command "bower"
ん?
bower
って何よ?
参考:
dotnet-publish
publish環境をつくろう
エラーメッセージでぐぐると、まんまのがありました。
GonzRuさんの回答で、npm経由のインストール手順があります。
npm install -g bower npm install -g gulp
npm
って、node.jsのナニヤラでしたっけね?
とりあえず、npmを入れます。
[root@centos7 WebApplication1]# yum -y install npm 読み込んだプラグイン:fastestmirror base | 3.6 kB 00:00 extras | 3.4 kB 00:00 updates | 3.4 kB 00:00 Loading mirror speeds from cached hostfile * base: www.ftp.ne.jp * extras: www.ftp.ne.jp * updates: www.ftp.ne.jp パッケージ npm は利用できません。 エラー: 何もしません
あっ。ないですか。
ざっとぐぐると、こういうのやこういうのが当たってきます。なるほど、epelにパッケージがあるなら、今後も安心ですね。
早速、yum-epelリポジトリを入れてから再度試します。
[root@centos7 WebApplication1]# yum install epel-release 読み込んだプラグイン:fastestmirror Loading mirror speeds from cached hostfile * base: www.ftp.ne.jp * extras: www.ftp.ne.jp * updates: www.ftp.ne.jp 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ epel-release.noarch 0:7-6 を インストール --> 依存性解決を終了しました。 依存性を解決しました ================================================================================ Package アーキテクチャー バージョン リポジトリー 容量 ================================================================================ インストール中: epel-release noarch 7-6 extras 14 k トランザクションの要約 ================================================================================ インストール 1 パッケージ 総ダウンロード容量: 14 k インストール容量: 24 k Is this ok [y/d/N]: y Downloading packages: epel-release-7-6.noarch.rpm | 14 kB 00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction インストール中 : epel-release-7-6.noarch 1/1 検証中 : epel-release-7-6.noarch 1/1 インストール: epel-release.noarch 0:7-6 完了しました! [root@centos7 WebApplication1]# yum -y install npm 読み込んだプラグイン:fastestmirror epel/x86_64/metalink | 5.0 kB 00:00 epel | 4.3 kB 00:00 epel/x86_64/primary_db FAILED http://ftp.cuhk.edu.hk/pub/linux/fedora-epel/7/x86_64/repodata/64def14d57e00e2fddbbbbc5be92792cd03fedbb047dd9929ebfe1cf7025ca84-primary.sqlite.xz: [Errno 14] HTTP Error 404 - Not Found 他のミラーを試します。 To address this issue please refer to the below knowledge base article https://access.redhat.com/articles/1320623 If above article doesn't help to resolve this issue please create a bug on https://bugs.centos.org/ (1/3): epel/x86_64/group_gz | 170 kB 00:00 (2/3): epel/x86_64/updateinfo | 681 kB 00:01 (3/3): epel/x86_64/primary_db | 4.4 MB 00:03 Loading mirror speeds from cached hostfile * base: www.ftp.ne.jp * epel: free.nchc.org.tw * extras: www.ftp.ne.jp * updates: www.ftp.ne.jp 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ npm.x86_64 1:3.10.8-1.6.9.1.4.el7 を インストール --> 依存性の処理をしています: nodejs = 1:6.9.1-4.el7 のパッケージ: 1:npm-3.10.8-1.6.9.1.4.el7.x86_64 --> トランザクションの確認を実行しています。 ---> パッケージ nodejs.x86_64 1:6.9.1-4.el7 を インストール --> 依存性の処理をしています: libuv >= 1:1.9.1 のパッケージ: 1:nodejs-6.9.1-4.el7.x86_64 --> 依存性の処理をしています: libuv.so.1()(64bit) のパッケージ: 1:nodejs-6.9.1-4.el7.x86_64 --> トランザクションの確認を実行しています。 ---> パッケージ libuv.x86_64 1:1.9.1-1.el7 を インストール --> 依存性解決を終了しました。 依存性を解決しました ================================================================================ Package アーキテクチャー バージョン リポジトリー 容量 ================================================================================ インストール中: npm x86_64 1:3.10.8-1.6.9.1.4.el7 epel 2.4 M 依存性関連でのインストールをします: libuv x86_64 1:1.9.1-1.el7 epel 79 k nodejs x86_64 1:6.9.1-4.el7 epel 4.6 M トランザクションの要約 ================================================================================ インストール 1 パッケージ (+2 個の依存関係のパッケージ) 総ダウンロード容量: 7.1 M インストール容量: 26 M Downloading packages: 警告: /var/cache/yum/x86_64/7/epel/packages/nodejs-6.9.1-4.el7.x86_64.rpm: ヘッ ダー V3 RSA/SHA256 Signature、鍵 ID 352c64e5: NOKEY nodejs-6.9.1-4.el7.x86_64.rpm の公開鍵がインストールされていません (1/3): nodejs-6.9.1-4.el7.x86_64.rpm | 4.6 MB 00:01 (2/3): npm-3.10.8-1.6.9.1.4.el7.x86_64.rpm | 2.4 MB 00:01 (3/3): libuv-1.9.1-1.el7.x86_64.rpm | 79 kB 00:02 -------------------------------------------------------------------------------- 合計 3.0 MB/s | 7.1 MB 00:02 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 から鍵を取得中です。 Importing GPG key 0x352C64E5: Userid : "Fedora EPEL (7) <epel@fedoraproject.org>" Fingerprint: 91e9 7d7c 4a5e 96f1 7f3e 888f 6a2f aea2 352c 64e5 Package : epel-release-7-6.noarch (@extras) From : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 Running transaction check Running transaction test Transaction test succeeded Running transaction インストール中 : 1:libuv-1.9.1-1.el7.x86_64 1/3 インストール中 : 1:npm-3.10.8-1.6.9.1.4.el7.x86_64 2/3 インストール中 : 1:nodejs-6.9.1-4.el7.x86_64 3/3 検証中 : 1:nodejs-6.9.1-4.el7.x86_64 1/3 検証中 : 1:libuv-1.9.1-1.el7.x86_64 2/3 検証中 : 1:npm-3.10.8-1.6.9.1.4.el7.x86_64 3/3 インストール: npm.x86_64 1:3.10.8-1.6.9.1.4.el7 依存性関連をインストールしました: libuv.x86_64 1:1.9.1-1.el7 nodejs.x86_64 1:6.9.1-4.el7 完了しました!
さて、npm経由でbowerとgulpを入れていれてみます。
[root@centos7 WebApplication1]# npm install -g bower /usr/bin/bower -> /usr/lib/node_modules/bower/bin/bower /usr/lib mqq bower@1.8.0 [root@centos7 WebApplication1]# npm install -g gulp npm WARN deprecated minimatch@2.0.10: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue npm WARN deprecated minimatch@0.2.14: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue npm WARN deprecated graceful-fs@1.2.3: graceful-fs v3.0.0 and before will fail on node releases >= v7.0. Please update to graceful-fs@^4.0.0 as soon as possible. Use 'npm ls graceful-fs' to find it in the tree. /usr/bin/gulp -> /usr/lib/node_modules/gulp/bin/gulp.js /usr/lib mqw gulp@3.9.1 tqq archy@1.0.0 tqw chalk@1.1.3 x tqq ansi-styles@2.2.1 x tqq escape-string-regexp@1.0.5 x tqw has-ansi@2.0.0 x x mqq ansi-regex@2.0.0 x tqq strip-ansi@3.0.1 x mqq supports-color@2.0.0 tqq deprecated@0.0.1 tqw gulp-util@3.0.7 x tqq array-differ@1.0.0 x tqq array-uniq@1.0.3 x tqq beeper@1.1.1 x tqw dateformat@1.0.12 x x tqq get-stdin@4.0.1 x x mqw meow@3.7.0 x x tqw camelcase-keys@2.1.0 x x x mqq camelcase@2.1.1 x x tqq decamelize@1.2.0 x x tqw loud-rejection@1.6.0 x x x tqw currently-unhandled@0.4.1 x x x x mqq array-find-index@1.0.2 x x x mqq signal-exit@3.0.1 x x tqq map-obj@1.0.1 x x tqw normalize-package-data@2.3.5 x x x tqq hosted-git-info@2.1.5 x x x tqw is-builtin-module@1.0.0 x x x x mqq builtin-modules@1.1.1 x x x mqw validate-npm-package-license@3.0.1 x x x tqw spdx-correct@1.0.2 x x x x mqq spdx-license-ids@1.2.2 x x x mqq spdx-expression-parse@1.0.4 x x tqq object-assign@4.1.0 x x tqw read-pkg-up@1.0.1 x x x tqw find-up@1.1.2 x x x x tqq path-exists@2.1.0 x x x x mqw pinkie-promise@2.0.1 x x x x mqq pinkie@2.0.4 x x x mqw read-pkg@1.1.0 x x x tqw load-json-file@1.1.0 x x x x tqq graceful-fs@4.1.11 x x x x tqw parse-json@2.2.0 x x x x x mqw error-ex@1.3.0 x x x x x mqq is-arrayish@0.2.1 x x x x tqq pify@2.3.0 x x x x mqq strip-bom@2.0.0 x x x mqq path-type@1.1.0 x x tqw redent@1.0.0 x x x tqw indent-string@2.1.0 x x x x mqw repeating@2.0.1 x x x x mqw is-finite@1.0.2 x x x x mqq number-is-nan@1.0.1 x x x mqq strip-indent@1.0.1 x x mqq trim-newlines@1.0.0 x tqw fancy-log@1.2.0 x x mqq time-stamp@1.0.1 x tqw gulplog@1.0.0 x x mqq glogg@1.0.0 x tqw has-gulplog@0.1.0 x x mqq sparkles@1.0.0 x tqq lodash._reescape@3.0.0 x tqq lodash._reevaluate@3.0.0 x tqq lodash._reinterpolate@3.0.0 x tqw lodash.template@3.6.2 x x tqq lodash._basecopy@3.0.1 x x tqq lodash._basetostring@3.0.1 x x tqq lodash._basevalues@3.0.0 x x tqq lodash._isiterateecall@3.0.9 x x tqw lodash.escape@3.2.0 x x x mqq lodash._root@3.0.1 x x tqw lodash.keys@3.1.2 x x x tqq lodash._getnative@3.9.1 x x x tqq lodash.isarguments@3.1.0 x x x mqq lodash.isarray@3.0.4 x x tqq lodash.restparam@3.6.1 x x mqq lodash.templatesettings@3.1.1 x tqw multipipe@0.1.2 x x mqw duplexer2@0.0.2 x x mqq readable-stream@1.1.14 x tqq object-assign@3.0.0 x tqq replace-ext@0.0.1 x tqw through2@2.0.3 x x tqw readable-stream@2.2.2 x x x tqq buffer-shims@1.0.0 x x x tqq core-util-is@1.0.2 x x x tqq inherits@2.0.3 x x x tqq isarray@1.0.0 x x x tqq process-nextick-args@1.0.7 x x x tqq string_decoder@0.10.31 x x x mqq util-deprecate@1.0.2 x x mqq xtend@4.0.1 x mqw vinyl@0.5.3 x tqq clone@1.0.2 x mqq clone-stats@0.0.1 tqq interpret@1.0.1 tqw liftoff@2.3.0 x tqq extend@3.0.0 x tqw findup-sync@0.4.3 x x tqw detect-file@0.1.0 x x x mqq fs-exists-sync@0.1.0 x x tqw is-glob@2.0.1 x x x mqq is-extglob@1.0.0 x x tqw micromatch@2.3.11 x x x tqw arr-diff@2.0.0 x x x x mqq arr-flatten@1.0.1 x x x tqq array-unique@0.2.1 x x x tqw braces@1.8.5 x x x x tqw expand-range@1.8.2 x x x x x mqw fill-range@2.2.3 x x x x x tqq is-number@2.1.0 x x x x x tqw isobject@2.1.0 x x x x x x mqq isarray@1.0.0 x x x x x tqq randomatic@1.1.6 x x x x x mqq repeat-string@1.6.1 x x x x tqq preserve@0.2.0 x x x x mqq repeat-element@1.1.2 x x x tqw expand-brackets@0.1.5 x x x x mqq is-posix-bracket@0.1.1 x x x tqq extglob@0.3.2 x x x tqq filename-regex@2.0.0 x x x tqw kind-of@3.0.4 x x x x mqq is-buffer@1.1.4 x x x tqq normalize-path@2.0.1 x x x tqw object.omit@2.0.1 x x x x tqw for-own@0.1.4 x x x x x mqq for-in@0.1.6 x x x x mqq is-extendable@0.1.1 x x x tqw parse-glob@3.0.4 x x x x tqw glob-base@0.3.0 x x x x x mqq glob-parent@2.0.0 x x x x mqq is-dotfile@1.0.2 x x x mqw regex-cache@0.4.3 x x x tqq is-equal-shallow@0.1.3 x x x mqq is-primitive@2.0.0 x x mqw resolve-dir@0.1.1 x x mqw global-modules@0.2.3 x x tqw global-prefix@0.1.5 x x x tqw homedir-polyfill@1.0.1 x x x x mqq parse-passwd@1.0.0 x x x tqq ini@1.3.4 x x x mqw which@1.2.12 x x x mqq isexe@1.1.2 x x mqq is-windows@0.2.0 x tqw fined@1.0.2 x x tqq expand-tilde@1.2.2 x x tqq lodash.assignwith@4.2.0 x x tqq lodash.isempty@4.4.0 x x tqq lodash.pick@4.4.0 x x mqw parse-filepath@1.0.1 x x tqw is-absolute@0.2.6 x x x mqw is-relative@0.2.1 x x x mqw is-unc-path@0.1.1 x x x mqq unc-path-regex@0.1.2 x x tqq map-cache@0.2.2 x x mqw path-root@0.1.1 x x mqq path-root-regex@0.1.2 x tqq flagged-respawn@0.3.2 x tqq lodash.isplainobject@4.0.6 x tqq lodash.isstring@4.0.1 x tqq lodash.mapvalues@4.6.0 x tqq rechoir@0.6.2 x mqq resolve@1.1.7 tqq minimist@1.2.0 tqw orchestrator@0.3.8 x tqw end-of-stream@0.1.5 x x mqw once@1.3.3 x x mqq wrappy@1.0.2 x tqq sequencify@0.0.7 x mqq stream-consume@0.1.0 tqq pretty-hrtime@1.0.3 tqq semver@4.3.6 tqw tildify@1.2.0 x mqq os-homedir@1.0.2 tqw v8flags@2.0.11 x mqq user-home@1.1.1 mqw vinyl-fs@0.3.14 tqq defaults@1.0.3 tqw glob-stream@3.1.18 x tqw glob@4.5.3 x x mqq inflight@1.0.6 x tqw glob2base@0.0.12 x x mqq find-index@0.1.1 x tqw minimatch@2.0.10 x x mqw brace-expansion@1.1.6 x x tqq balanced-match@0.4.2 x x mqq concat-map@0.0.1 x tqq ordered-read-streams@0.1.0 x tqw through2@0.6.5 x x mqq readable-stream@1.0.34 x mqq unique-stream@1.0.0 tqw glob-watcher@0.0.6 x mqw gaze@0.5.2 x mqw globule@0.1.0 x tqw glob@3.1.21 x x tqq graceful-fs@1.2.3 x x mqq inherits@1.0.2 x tqq lodash@1.0.2 x mqw minimatch@0.2.14 x tqq lru-cache@2.7.3 x mqq sigmund@1.0.1 tqw graceful-fs@3.0.11 x mqq natives@1.1.0 tqw mkdirp@0.5.1 x mqq minimist@0.0.8 tqw strip-bom@1.0.0 x tqq first-chunk-stream@1.0.0 x mqq is-utf8@0.2.1 tqw through2@0.6.5 x mqw readable-stream@1.0.34 x mqq isarray@0.0.1 mqw vinyl@0.4.6 mqq clone@0.2.0
何か警告出てる気がするけど。publishに使うだけだし、まあいいんじゃないかな(適当)
じゃあ、改めて。publishしてみます。
[root@centos7 WebApplication1]# dotnet publish --configuration Release --output /home/webroot/dotnet_sample/bin/ Publishing WebApplication1 for .NETCoreApp,Version=v1.0 bower ESUDO Cannot be run with sudo Additional error details: Since bower is a user command, there is no need to execute it with superuser permissions. If you're having permission errors when using bower without sudo, please spend a few minutes learning more about how your system should work and make any necessary repairs. http://www.joyent.com/blog/installing-node-and-npm https://gist.github.com/isaacs/579814 You can however run a command with sudo using --allow-root option Bundling with configuration from /home/webroot/dotnet_sample/src/src/WebApplication1/bundleconfig.json Processing wwwroot/css/site.min.css Bundled Minified Processing wwwroot/js/site.min.js Bundled Project WebApplication1 (.NETCoreApp,Version=v1.0) will be compiled because expected outputs are missing Compiling WebApplication1 for .NETCoreApp,Version=v1.0 Compilation succeeded. 0 Warning(s) 0 Error(s) Time elapsed 00:00:01.9241647 Configuring the following project for use with IIS: '/home/webroot/dotnet_sample/bin/' Updating web.config at '/home/webroot/dotnet_sample/bin/web.config' Configuring project completed successfully
お~~~。できたっぽい。
どれどれ?
[root@centos7 WebApplication1]# ls -alF /home/webroot/dotnet_sample/bin 合計 5260 drwxr-xr-x 5 root root 8192 12月 3 13:26 ./ drwxr-xr-x 4 root root 26 12月 3 12:05 ../ -rwxr--r-- 1 root root 50680 8月 31 17:26 Microsoft.AspNetCore.Antiforgery.dll* -rwxr--r-- 1 root root 38400 6月 22 09:14 Microsoft.AspNetCore.Authorization.dll* -rwxr--r-- 1 root root 31744 6月 22 09:14 Microsoft.AspNetCore.Cors.dll* -rwxr--r-- 1 root root 40952 6月 22 09:14 Microsoft.AspNetCore.Cryptography.Internal.dll* -rwxr--r-- 1 root root 21504 6月 22 09:14 Microsoft.AspNetCore.DataProtection.Abstractions.dll* -rwxr--r-- 1 root root 143360 6月 22 09:14 Microsoft.AspNetCore.DataProtection.dll* -rwxr--r-- 1 root root 16376 6月 22 09:14 Microsoft.AspNetCore.Diagnostics.Abstractions.dll* -rwxr--r-- 1 root root 205312 6月 22 09:14 Microsoft.AspNetCore.Diagnostics.dll* -rwxr--r-- 1 root root 19968 6月 22 09:14 Microsoft.AspNetCore.Hosting.Abstractions.dll* -rwxr--r-- 1 root root 15352 6月 22 09:14 Microsoft.AspNetCore.Hosting.Server.Abstractions.dll* -rwxr--r-- 1 root root 68608 6月 22 09:14 Microsoft.AspNetCore.Hosting.dll* -rwxr--r-- 1 root root 19968 6月 22 09:14 Microsoft.AspNetCore.Html.Abstractions.dll* -rwxr--r-- 1 root root 61432 6月 22 09:14 Microsoft.AspNetCore.Http.Abstractions.dll* -rwxr--r-- 1 root root 37888 6月 22 09:14 Microsoft.AspNetCore.Http.Extensions.dll* -rwxr--r-- 1 root root 30720 6月 22 09:14 Microsoft.AspNetCore.Http.Features.dll* -rwxr--r-- 1 root root 80384 6月 22 09:14 Microsoft.AspNetCore.Http.dll* -rwxr--r-- 1 root root 25600 6月 22 09:14 Microsoft.AspNetCore.HttpOverrides.dll* -rwxr--r-- 1 root root 45568 6月 22 09:14 Microsoft.AspNetCore.JsonPatch.dll* -rwxr--r-- 1 root root 26104 6月 22 09:14 Microsoft.AspNetCore.Localization.dll* -rwxr--r-- 1 root root 89080 8月 31 17:26 Microsoft.AspNetCore.Mvc.Abstractions.dll* -rwxr--r-- 1 root root 42488 8月 31 17:26 Microsoft.AspNetCore.Mvc.ApiExplorer.dll* -rwxr--r-- 1 root root 390648 8月 31 17:26 Microsoft.AspNetCore.Mvc.Core.dll* -rwxr--r-- 1 root root 23544 8月 31 17:26 Microsoft.AspNetCore.Mvc.Cors.dll* -rwxr--r-- 1 root root 44024 8月 31 17:26 Microsoft.AspNetCore.Mvc.DataAnnotations.dll* -rwxr--r-- 1 root root 32248 8月 31 17:26 Microsoft.AspNetCore.Mvc.Formatters.Json.dll* -rwxr--r-- 1 root root 30200 8月 31 17:26 Microsoft.AspNetCore.Mvc.Localization.dll* -rwxr--r-- 1 root root 55288 8月 31 17:26 Microsoft.AspNetCore.Mvc.Razor.Host.dll* -rwxr--r-- 1 root root 121848 8月 31 17:26 Microsoft.AspNetCore.Mvc.Razor.dll* -rwxr--r-- 1 root root 103928 8月 31 17:26 Microsoft.AspNetCore.Mvc.TagHelpers.dll* -rwxr--r-- 1 root root 242168 8月 31 17:26 Microsoft.AspNetCore.Mvc.ViewFeatures.dll* -rwxr--r-- 1 root root 24568 8月 31 17:26 Microsoft.AspNetCore.Mvc.dll* -rwxr--r-- 1 root root 83960 6月 22 09:14 Microsoft.AspNetCore.Razor.Runtime.dll* -rwxr--r-- 1 root root 297976 6月 22 09:14 Microsoft.AspNetCore.Razor.dll* -rwxr--r-- 1 root root 36344 8月 31 17:26 Microsoft.AspNetCore.Routing.Abstractions.dll* -rwxr--r-- 1 root root 104440 8月 31 17:26 Microsoft.AspNetCore.Routing.dll* -rwxr--r-- 1 root root 27648 6月 22 09:14 Microsoft.AspNetCore.Server.IISIntegration.dll* -rwxr--r-- 1 root root 247288 8月 31 17:26 Microsoft.AspNetCore.Server.Kestrel.dll* -rwxr--r-- 1 root root 68608 6月 22 09:14 Microsoft.AspNetCore.StaticFiles.dll* -rwxr--r-- 1 root root 62456 6月 22 09:14 Microsoft.AspNetCore.WebUtilities.dll* -rwxr--r-- 1 root root 23616 6月 21 21:04 Microsoft.DotNet.InternalAbstractions.dll* -rwxr--r-- 1 root root 25600 6月 22 09:14 Microsoft.Extensions.Caching.Abstractions.dll* -rwxr--r-- 1 root root 29688 6月 22 09:14 Microsoft.Extensions.Caching.Memory.dll* -rwxr--r-- 1 root root 19456 6月 22 09:14 Microsoft.Extensions.Configuration.Abstractions.dll* -rwxr--r-- 1 root root 22520 6月 22 09:14 Microsoft.Extensions.Configuration.Binder.dll* -rwxr--r-- 1 root root 19960 6月 22 09:14 Microsoft.Extensions.Configuration.EnvironmentVariables.dll* -rwxr--r-- 1 root root 18432 6月 22 09:14 Microsoft.Extensions.Configuration.FileExtensions.dll* -rwxr--r-- 1 root root 24056 6月 22 09:14 Microsoft.Extensions.Configuration.Json.dll* -rwxr--r-- 1 root root 24576 6月 22 09:14 Microsoft.Extensions.Configuration.dll* -rwxr--r-- 1 root root 35840 6月 22 09:14 Microsoft.Extensions.DependencyInjection.Abstractions.dll* -rwxr--r-- 1 root root 37368 6月 22 09:14 Microsoft.Extensions.DependencyInjection.dll* -rwxr--r-- 1 root root 57408 6月 21 21:04 Microsoft.Extensions.DependencyModel.dll* -rwxr--r-- 1 root root 18936 6月 22 09:14 Microsoft.Extensions.FileProviders.Abstractions.dll* -rwxr--r-- 1 root root 18432 6月 22 09:14 Microsoft.Extensions.FileProviders.Composite.dll* -rwxr--r-- 1 root root 27648 6月 22 09:14 Microsoft.Extensions.FileProviders.Physical.dll* -rwxr--r-- 1 root root 35328 6月 22 09:14 Microsoft.Extensions.FileSystemGlobbing.dll* -rwxr--r-- 1 root root 15872 6月 22 09:14 Microsoft.Extensions.Globalization.CultureInfoCache.dll* -rwxr--r-- 1 root root 16896 6月 22 09:14 Microsoft.Extensions.Localization.Abstractions.dll* -rwxr--r-- 1 root root 26624 6月 22 09:14 Microsoft.Extensions.Localization.dll* -rwxr--r-- 1 root root 43512 6月 22 09:14 Microsoft.Extensions.Logging.Abstractions.dll* -rwxr--r-- 1 root root 27640 6月 22 09:14 Microsoft.Extensions.Logging.Console.dll* -rwxr--r-- 1 root root 16376 6月 22 09:14 Microsoft.Extensions.Logging.Debug.dll* -rwxr--r-- 1 root root 18424 6月 22 09:14 Microsoft.Extensions.Logging.dll* -rwxr--r-- 1 root root 17912 6月 22 09:14 Microsoft.Extensions.ObjectPool.dll* -rwxr--r-- 1 root root 15872 6月 22 09:14 Microsoft.Extensions.Options.ConfigurationExtensions.dll* -rwxr--r-- 1 root root 20480 6月 22 09:14 Microsoft.Extensions.Options.dll* -rwxr--r-- 1 root root 16384 6月 22 09:14 Microsoft.Extensions.PlatformAbstractions.dll* -rwxr--r-- 1 root root 27648 6月 22 09:14 Microsoft.Extensions.Primitives.dll* -rwxr--r-- 1 root root 19456 6月 22 09:14 Microsoft.Extensions.WebEncoders.dll* -rwxr--r-- 1 root root 63992 6月 22 09:14 Microsoft.Net.Http.Headers.dll* -rwxr--r-- 1 root root 18432 6月 22 09:14 Microsoft.VisualStudio.Web.BrowserLink.Loader.dll* -rwxr--r-- 1 root root 468480 6月 13 23:06 Newtonsoft.Json.dll* -rwxr--r-- 1 root root 88472 6月 11 23:13 System.Collections.NonGeneric.dll* -rwxr--r-- 1 root root 46488 6月 11 23:13 System.Collections.Specialized.dll* -rwxr--r-- 1 root root 36256 6月 11 23:13 System.ComponentModel.Primitives.dll* -rwxr--r-- 1 root root 121776 6月 11 23:13 System.ComponentModel.TypeConverter.dll* -rwxr--r-- 1 root root 22928 6月 11 23:13 System.Diagnostics.Contracts.dll* -rwxr--r-- 1 root root 30584 6月 11 23:14 System.Net.WebSockets.dll* -rwxr--r-- 1 root root 29632 6月 11 23:14 System.Runtime.Serialization.Primitives.dll* -rwxr--r-- 1 root root 64232 6月 11 23:14 System.Text.Encodings.Web.dll* drwxr-xr-x 4 root root 80 12月 3 13:26 Views/ -rwxr--r-- 1 root root 151709 12月 3 13:26 WebApplication1.deps.json* -rwxr--r-- 1 root root 243712 12月 3 13:26 WebApplication1.dll* -rwxr--r-- 1 root root 1304 12月 3 13:26 WebApplication1.pdb* -rwxr--r-- 1 root root 182 12月 3 13:26 WebApplication1.runtimeconfig.json* -rwxr--r-- 1 root root 178 12月 2 17:07 appsettings.json* drwxr-xr-x 2 root root 4096 12月 3 13:26 refs/ -rwxr--r-- 1 root root 547 12月 3 13:26 web.config* drwxr-xr-x 6 root root 87 12月 3 13:26 wwwroot/
設定ファイルや依存dllなど、一式が配置されてますね!
参考:
No executable found matching command "bower" #3293
CentOS7 node.jsのインストールメモ - Qiita
How To Install Node.js on a CentOS 7 server | DigitalOcean
実行してみる
実行に必要なファイルが、ぜんぶ書き出されました!ので、試しに実行してみます。
[root@centos7 WebApplication1]# cd /home/webroot/dotnet_sample/bin/ [root@centos7 bin]# systemctl status httpd ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled) Active: active (running) since 土 2016-12-03 13:54:50 JST; 19min ago Docs: man:httpd(8) man:apachectl(8) Main PID: 2738 (httpd) Status: "Total requests: 11; Current requests/sec: 0; Current traffic: 0 B/sec" CGroup: /system.slice/httpd.service tq2738 /usr/sbin/httpd -DFOREGROUND tq2739 /usr/sbin/httpd -DFOREGROUND tq2740 /usr/sbin/httpd -DFOREGROUND tq2741 /usr/sbin/httpd -DFOREGROUND tq2742 /usr/sbin/httpd -DFOREGROUND tq2743 /usr/sbin/httpd -DFOREGROUND tq2760 /usr/sbin/httpd -DFOREGROUND tq2795 /usr/sbin/httpd -DFOREGROUND tq2796 /usr/sbin/httpd -DFOREGROUND mq2797 /usr/sbin/httpd -DFOREGROUND 12月 03 13:54:50 centos7.local systemd[1]: Starting The Apache HTTP Server... 12月 03 13:54:50 centos7.local httpd[2738]: AH00557: httpd: apr_sockaddr_in...l 12月 03 13:54:50 centos7.local httpd[2738]: AH00558: httpd: Could not relia...e 12月 03 13:54:50 centos7.local systemd[1]: Started The Apache HTTP Server. Hint: Some lines were ellipsized, use -l to show in full. [root@centos7 bin]# dotnet ./WebApplication1.dll Hosting environment: Production Content root path: /home/webroot/dotnet_sample/bin Now listening on: http://localhost:5000 Application started. Press Ctrl+C to shut down.
ブラウザから見てみます。
おっけーですね!
動作しない?
動作検証時に、正常動作しない現象がありました。
カレントパスがpublish先パスでない場合に、レスポンスが空っぽになります。
[root@centos7 bin]# cd [root@centos7 ~]# pwd /root [root@centos7 ~]# dotnet /home/webroot/dotnet_sample/bin/WebApplication1.dll Hosting environment: Production Content root path: /root Now listening on: http://localhost:5000 Application started. Press Ctrl+C to shut down.
このあとブラウザからアクセスしても、反応がブランクです。
んー?
通信をみてみます...
あら。Internal Server Errorですか。
プログラム自体は異常終了してないんですよね。
[root@centos7 ~]# ps -A | grep dotnet 2856 pts/1 00:00:01 dotnet
というわけで、実行時は publish先のパスに居ないとダメみたいです。
dotnetコマンドのオプションも特に記述が無いので、あとでサービス化するときに、注意が要りますね。
今回分のソースコードはこちら。
まだ、Visual Studioが生成するテンプレートのままです。
github.com