diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..50f071e0 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,5 @@ +node_modules/ +dist/ +.git/ +.* +*.md diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml new file mode 100644 index 00000000..9abfc9b6 --- /dev/null +++ b/.github/workflows/docker-build.yml @@ -0,0 +1,38 @@ +name: Docker Multi-Architecture Build + +on: + push: + paths-ignore: + - "**.md" + branches: + - master + +jobs: + build-docker-hotspot: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2.3.4 + with: + fetch-depth: 0 + - name: Set up QEMU + uses: docker/setup-qemu-action@v1.2.0 + with: + platforms: all + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v1.5.1 + with: + version: latest + - name: Login to DockerHub + uses: docker/login-action@v1.10.0 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + - name: Build and push + uses: docker/build-push-action@v2.6.1 + with: + context: . + file: ./Dockerfile + platforms: linux/amd64,linux/arm64 + push: true + tags: 1337kavin/piped-frontend:latest diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..df2e5696 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,17 @@ +FROM node:current-alpine AS build + +WORKDIR /app/ + +COPY package.json yarn.lock ./ + +RUN yarn install --prefer-offline + +COPY . . + +RUN yarn build && sed -i 's/fonts.gstatic.com/fonts.kavin.rocks/g' dist/css/*.css + +FROM nginx:alpine + +COPY --from=build /app/dist/ /usr/share/nginx/html/ + +EXPOSE 80