0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[備忘録]Github actionsでDockerビルドするときにプライベートレポジトリからyarn installする方法

Posted at

概要

表題の通り。
APIをOpenAPIに合わせてつくったのでその型やAPI Clientをパッケージ化して、別レポジトリのフロント側で読み込みたかった。DockerビルドするのはKubernetesに載せたいので。

Package化する方法については省略。

実装

Github actions secretにレポジトリアクセスできるtokenの設定が必要です。
今回は NPM_TOKEN で設定済み。 secret.GITHUB_TOKEN ではできない。

.yarnrc
registry "https://registry.npmjs.org"
"@my-org:registry" "https://npm.pkg.github.com"

my-orgというチームのプライベートレポジトリのパッケージを取得する想定。

.npmrc.docker
//npm.pkg.github.com/:_authToken=${NPM_TOKEN}

.npmrcNPM_TOKEN の指定をしたままにするとローカルで動かないのでDockerビルド時にリネームして参照できるようにした。起動時に毎回 NPM_TOKEN を ARG で渡さないといけなくなるので yarn install したら削除する。

Dockerfile
FROM node:18
ARG NPM_TOKEN
WORKDIR /usr/src/app
COPY ./.npmrc.docker ./.npmrc
COPY ./.yarnrc ./
COPY ./package* ./
COPY ./yarn* ./
RUN yarn
RUN rm .npmrc
COPY . .
RUN yarn build
EXPOSE 3000
ENTRYPOINT yarn start
.github/workflows/build-and-push.yml
jobs:
  build-and-push:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout
        uses: actions/checkout@v3

      - name: Build and push
        uses: docker/build-push-action@v4
        with:
          context: .
          push: true
          tags: |
            ${{ secrets.REGISTRY_URL }}:latest
          cache-from: ${{ secrets.REGISTRY_URL }}
          build-args: |
            NPM_TOKEN=${{ secrets.NPM_TOKEN }}
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?