湯本 開 9f5252baf8 Merged PR 56: API実装(アカウント登録)
## 概要
[Task1496: API実装(アカウント登録)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1496)

- アカウント登録のAzureAD B2Cへのユーザー作成部分以外について実装
- migration SQLに足りない要素があった箇所を修正(default追加)
- 各種環境変数を追加
- 秘密鍵/公開鍵を取得する方法を環境変数に変更(KeyVaultからWebAppsの機能で環境変数へ流し込む想定)

## レビューポイント
- 実装方法として問題がありそうな箇所が存在しないか
- 可読性の低い箇所が存在しないか
- Moduleの分け方、つなげ方などは問題ないか
- ラフスケッチと違い、Account作成と管理者ユーザー作成を同一トランザクションで行うよう修正したが問題ないか

## 動作確認状況
- メール送信以外はローカルで確認、メール送信部分は未確認
2023-03-29 03:55:44 +00:00

53 lines
1.8 KiB
Docker

FROM node:18.13.0-buster
RUN /bin/cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime && \
echo "Asia/Tokyo" > /etc/timezone
# Options for setup script
ARG INSTALL_ZSH="true"
ARG UPGRADE_PACKAGES="false"
ARG USERNAME=vscode
# 1000 はnodeで使われているためずらす
ARG USER_UID=1001
ARG USER_GID=$USER_UID
# Install needed packages and setup non-root user. Use a separate RUN statement to add your own dependencies.
COPY library-scripts/common-debian.sh /tmp/library-scripts/
RUN bash /tmp/library-scripts/common-debian.sh "${INSTALL_ZSH}" "${USERNAME}" "${USER_UID}" "${USER_GID}" "${UPGRADE_PACKAGES}" \
&& apt-get install default-jre -y \
&& apt-get clean -y && rm -rf /var/lib/apt/lists/* /tmp/library-scripts
# COPY --from=golang:1.18-buster /usr/local/go/ /usr/local/go/
ENV GO111MODULE=auto
COPY library-scripts/go-debian.sh /tmp/library-scripts/
RUN bash /tmp/library-scripts/go-debian.sh "1.18" "/usr/local/go" "${GOPATH}" "${USERNAME}" "false" \
&& apt-get clean -y && rm -rf /tmp/library-scripts
ENV PATH="/usr/local/go/bin:${PATH}"
RUN mkdir -p /tmp/gotools \
&& cd /tmp/gotools \
&& export GOPATH=/tmp/gotools \
&& export GOCACHE=/tmp/gotools/cache \
# sql-migrate
&& go install github.com/rubenv/sql-migrate/sql-migrate@v1.1.2 \
&& mv /tmp/gotools/bin/* ${TARGET_GOPATH}/bin/ \
&& rm -rf /tmp/gotools
# Update NPM
RUN npm install -g npm
# Install NestJS
RUN npm i -g @nestjs/cli
# Copy mysql conf
COPY db/conf/my.cnf /etc/mysql/conf.d/
# 以下 ユーザー権限で実施
USER $USERNAME
# copy init-script
COPY --chown=$USERNAME:$USERNAME init.sh /home/${USERNAME}/
RUN chmod +x /home/${USERNAME}/init.sh
# 初期化を行う
# node imageのデフォルトENTRYPOINTが邪魔するため上書き
ENTRYPOINT /home/vscode/init.sh