Flutter web docker on GitHub Container Registry

Photo by Victoire Joncheray on Unsplash

GitHub Container Registry が GA したãŋたいãĒぎでäŊŋãŖãĻãŋぞすīŧŽ
ついでãĒぎで Flutter web でīŧŽ
晎通ãĢ docker push するぎは晎通過ぎるぎで actions でやりぞすīŧŽ
ã‚ĩãƒŗãƒ—ãƒĢãƒŦポジトãƒĒã¯ä¸‹č¨˜ã§ã™īŧŽ

yuzumone/flutter-web-docker-sample

Dockerfile

ã‚ĩãƒŗãƒ—ãƒĢãĒぎで 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

workflow.yml

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}'