Wait a moment...

【プログラミング】macでdocker-composeを利用してC#webアプリとSQLserverを接続する

nem4.82xem (3)
334
0
2019-12-29 09:43:08
【プログラミング】macでdocker-composeを利用してC#webアプリとSQLserverを接続する

仕事でC#とSQLserverを使うので練習のために環境を整えようと思ったのですが、なかなか上手くいかず結構長いこと躓いてました。

ウチにあるパソコンは全てMacOSなのでマイクロソフト関連は環境を整えるだけで一苦労です。

 

SQLserverはMacOSでは使えないということなので、Dockerを利用してローカルとアプリに接続しました。今回はその手順を自分用のメモも兼ねて書きます。

 

 

前提

 

  • dotnetインストール済み
  • dockerインストール済み

 

 

環境

 

  • MacOS
  • VSforMac

 

docker-compose.ymlが最強

 

何よりも手っ取り早いです。

色んなコマンド試したりファイルをいじったりしてみたのですが結局これが一番楽でした。

 

(docker-compose.yml)


version: '3.4'

services:
  appname:
    image: ${DOCKER_REGISTRY-}razorpagesmovie
    build:
      context: .
      dockerfile: RazorPagesMovie/Dockerfile
  db:
    hostname: 'localhost'
    environment:
      - MSSQL_SA_PASSWORD=yourpass //mssqlのパスワードを設定
      - ACCEPT_EULA=Y
      - MSSQL_PID=Developer
    image: mcr.microsoft.com/mssql/server:2019-latest
    ports:
      - "1433:1433"
    volumes:
      - ./mssql/:/c/var/opt/mssql/

 

これであとはビルドするだけです。

 

Dockerfileとdocker-compose.ymlはVSforMacだと以下の手順で勝手に作成してくれます。

 

  1. アプリ作成
  2. 右上の検索画面でdockerを検索
  3. パッケージを選択

 

あとは作成されたdocker-compose.ymlファイルにdb以下を貼り付けるだけでおk。

 

VSforMacはまだ使い慣れていないのでわかりにくいのですが、VSCode上でdockerをインストールしとけばコンテナがちゃんと起動してるかどうかすぐにわかります。

 

コマンドだと、

 

docker ps

 

で該当コンテナがUpと表示されていれば問題ないです。

 

 

まとめ

 

なんでこの方法に最初から気づかなかったのか悔やまれます。

多分簡単なことなのだと思いますが、私のようなまだまだ知識乏しい人間にとってはこういう環境作りは結構大変だと思うので誰かの助けになれたら嬉しいです。

 

 

余談

 

もう少し周辺知識が身についたら簡単なnem利用ゲームアプリみたいなのも作ってみたいと思います。

そのためにもとりあえず必要最低限のdb周りとC#の基本的プログラミングができるように頑張りたいと思います。

 

 

参考

 

この記事を書いた人
趣味は読書(特に太宰治)、アニメ鑑賞(特に幾原作品)、旅行。 エンジニア見習い。 日々の色々を共有しながらnemのことについても学びたいと思います。