kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

Azure DevOps 2021/5/4の更新

May be 4th with You!(5/4リリースだったので。私はSW派です) Azure DevOps Sprint 186リリースノートの翻訳を行いました。オリジナルはこちらから読んでください。

docs.microsoft.com

今回、Azure Repos(Gitのみ)を保護されたリソースとして定義できるようになりました。これは非常にうれしい。一つ前のエントリーでもお話したセキュリティ&コンプライアンスの欠点のひとつとして、「レポジトリーはreader(チームプロジェクトに参加していれば大体つく)権限があれば参照できてしまう」という仕様がありました。

kkamegawa.hatenablog.jp

例えばリリース用のYAMLテンプレートをどこかのレポジトリーで集中管理させて、特定のパイプラインのみ参照させたいということが基本的に難しかったのですが、この機能を使えば実行時の検証が入るのでとても助かります。

PAT管理のAPIが一般提供可能になるの早かったですね。前のスプリントでプレビューになったばかりなのに。PAT管理は悩みの種でしたが、テナントとの連携で楽になりそうです。

Artifactsのごみ箱に入ったフィードが消せるようになったのもストレージ節約になってうれしいですね。

ではまた三週間後。

Translate to Japanese to Azure DevOps release not…

Azure DevOpsとセキュリティ&コンプライアンスのお話をしてきました

オルターブースさんからお話をいただいて、Azure DevOpsとコンプライアンスとセキュリティというお話をさせていただきました。

alterbooth.connpass.com

資料はこちらです。最初Azure Policy設定してもエラーになるのになんで?って悩みまくっていたのですが、聞いたらリソースプロバイダーがないからだといわれました。Azureポータルからは設定できるのに…。Releaseで設定したらそのついでにリソースプロバイダーも設定してほしいものです(わがまま)。

自分もこの辺知識として知ってはいたのですが、実際にどういう挙動なのかいまいち理解していないところもあったので、いい勉強になりました。今回参加できなかった方向けに再演とかデモとかやったほうがいいかな?よければコメントなり、Twitterなどでコメントください。

Azure DevOps 2021/4/13の更新

Azure DevOps Sprint 185リリースノートの翻訳を行いました。オリジナルはこちらから読んでください。

docs.microsoft.com

とはいっても最近機械翻訳も出てきたので、一緒に貼り付けておきますね。

docs.microsoft.com

このスプリントのリリースノートはまだ機械翻訳ではないですが、そのうち出てくるのかな。今はまだSprint 184までが機械翻訳になっているようです。ドキュメントも機械翻訳になっているので、今まで英語だからとあきらめていた人も読んでみてください。Bingの翻訳以前よりはだいぶ良くなっています。

今回はDelivery Plans 2.0のトラッキングで長いワークアイテムの名前が省略されなくなったのはいいですね。例えば命名規則でプレフィックスを付けていたような人には助かるんじゃないかなと思います。

通常は組み込みテンプレート使うと思いますが、開発プロセスで独自のワークアイテムの種類を作ることはあると思います。そういう時バーンダウンウィジェットでは集計できなくて困っていたのが解消されるのはいいですね。

今回短いなぁ…あっという間に翻訳できてしまいました。ではまた三週間後。

Translate to Japanese to Azure DevOps release not…

Visual Studioで生成されたdockerfileではAzure Pipelinesでエラーになる

やるたびにはまって調べている気がするので、自分のためのメモです。Visual Studioでプロジェクト作るときに「Dockerサポートを追加」するとDockerfileおよび、docker-composeのプロジェクトが追加されます。ローカルではいいのですが、Azure Pipelines(に限らずたぶんCIでは)こんなエラーになります。

Step 7/26 : COPY ["kkdockerweb/kkdockerweb.csproj", "kkdockerweb/"]
 COPY failed: file not found in build context or excluded by .dockerignore: stat kkdockerweb/kkdockerweb.csproj: file does not exist
##[error]COPY failed: file not found in build context or excluded by .dockerignore: stat kkdockerweb/kkdockerweb.csproj: file does not exist
##[error]The process '/usr/bin/docker' failed with exit code 1

初期状態はこんなYAMLのはずです。

FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
WORKDIR /src
COPY ["kkdockerweb.csproj", "kkdockerweb/"]
RUN dotnet restore "kkdockerweb/kkdockerweb.csproj"
COPY . .
WORKDIR "/src/kkdockerweb"
RUN dotnet build "kkdockerweb.csproj" -c Release -o /app/build

エラーは2回目のCOPY . .です。なんでかというと、CIとローカルマシンでdocker buildするときの場所が違うからのようです。YAMLでbuildContextを指定するか、DockerfileのCOPYを直します。Dockerfileを直しました。

FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
WORKDIR /src
COPY ["kkdockerweb.csproj", "kkdockerweb/"]
RUN dotnet restore "kkdockerweb/kkdockerweb.csproj"
COPY . kkdockerweb/
WORKDIR "/src/kkdockerweb"
RUN dotnet build "kkdockerweb.csproj" -c Release -o /app/build