Skip to content

Flutter web docker on GitHub Container Registry

GitHub Container Registry が GA したみたいなので使ってみます. ついでなので Flutter web で. 普通に docker push するのは普通過ぎるので actions でやります. サンプルレポジトリは下記です.

yuzumone/flutter-web-docker-sample

サンプルなので flutter create でやってます. 実際の場合は git clone するか COPY かどっちかですかね.

FROM cirrusci/flutter:beta AS buildRUN flutter config --enable-webRUN flutter create sample
WORKDIR /home/cirrus/sample
RUN flutter build webFROM nginx
COPY --from=build /home/cirrus/sample/build/web /usr/share/nginx/html

run してるだけだし shell と変わらないけど. tag どうするか悩んで github.sha 使ったんですけどベストプラクティスがあれば知りたい.

jobs:
build:
name: Build image
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@master
- name: Login
run: docker login docker.pkg.github.com -u ${{ github.actor }} -p ${{ secrets.GITHUB_TOKEN }}
- name: Build
run: docker build -t docker.pkg.github.com/${{ github.repository }}/${IMAGE_NAME}:${{ github.sha }} --file Dockerfile .
- name: Push
run: docker push docker.pkg.github.com/${{ github.repository }}/${IMAGE_NAME}:${{ github.sha }}

あと IMAGE_NAME も今回は env で指定したけど今回みたいに 1 個しか作らないなら下の感じでやるのが良さそう.

echo ${{ github.repository }} | awk -F '/' '{print $2}'