Build improvements

pull/237/head
Aliaksandr Shulyak 4 years ago
parent 50b7d6fc93
commit 241fae07a2
No known key found for this signature in database
GPG Key ID: 0BFCA412B03A4A76

@ -1,31 +1,44 @@
name: Build and Publish docker image to ghcr
name: Build and push base docker image
on:
release:
types: [created]
push:
paths:
- ./Dockerfile.base
branches:
- master
env:
alpine_version: 3.15
jobs:
docker:
build-and-push-base-image:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v3
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Login to GitHub Container Registry
uses: docker/login-action@v1
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v2
with:
context: .
platforms: linux/amd64,linux/arm64,linux/arm/v7
file: Dockerfile.base
build_args:
- ALPINE_VERSION=${{ env.alpine_version }}
push: true
tags: |
ghcr.io/thelonkarrde/planka:latest
ghcr.io/thelonkarrde/planka:${{ github.event.release.tag_name }}
ghcr.io/plankanban/planka:build-base-latest
ghcr.io/plankanban/planka:build-base-${{ env.alpine_version }}

1
.gitignore vendored

@ -1,5 +1,6 @@
node_modules
docker-compose.override.yml
.idea
.vscode
.DS_Store

@ -10,47 +10,19 @@ RUN npm install npm@latest --global \
COPY client .
RUN npm run build
FROM node:lts-alpine
FROM ghcr.io/plankanban/planka:base
WORKDIR /app
COPY server/.npmrc server/package.json server/package-lock.json ./
ARG ALPINE_VERSION=3.15
ARG VIPS_VERSION=8.12.2
RUN apk -U upgrade \
&& apk add \
bash giflib glib lcms2 libexif \
libgsf libjpeg-turbo libpng librsvg libwebp \
orc pango tiff \
--repository https://alpine.global.ssl.fastly.net/alpine/v${ALPINE_VERSION}/community/ \
--repository https://alpine.global.ssl.fastly.net/alpine/v${ALPINE_VERSION}/main/ \
--no-cache \
&& apk add \
build-base giflib-dev glib-dev lcms2-dev libexif-dev \
libgsf-dev libjpeg-turbo-dev libpng-dev librsvg-dev libwebp-dev \
orc-dev pango-dev tiff-dev \
--virtual vips-dependencies \
--repository https://alpine.global.ssl.fastly.net/alpine/v${ALPINE_VERSION}/community/ \
--repository https://alpine.global.ssl.fastly.net/alpine/v${ALPINE_VERSION}/main/ \
--no-cache \
&& wget -O- https://github.com/libvips/libvips/releases/download/v${VIPS_VERSION}/vips-${VIPS_VERSION}.tar.gz | tar xzC /tmp \
&& cd /tmp/vips-${VIPS_VERSION} \
&& ./configure \
&& make \
&& make install-strip \
&& cd $OLDPWD \
&& rm -rf /tmp/vips-${VIPS_VERSION} \
&& npm install npm@latest --global \
&& npm install --production \
&& apk del vips-dependencies --purge
RUN npm install npm@latest --global \
&& npm install --production
COPY docker-start.sh start.sh
COPY server .
RUN chmod +x start.sh \
&& cp .env.sample .env
RUN cp .env.sample .env
COPY --from=client-builder /app/build public
COPY --from=client-builder /app/build/index.html views

@ -0,0 +1,28 @@
FROM node:lts-alpine
ARG ALPINE_VERSION=3.15
ARG VIPS_VERSION=8.12.2
RUN apk -U upgrade \
&& apk add \
bash giflib glib lcms2 libexif \
libgsf libjpeg-turbo libpng librsvg libwebp \
orc pango tiff \
--repository https://alpine.global.ssl.fastly.net/alpine/v${ALPINE_VERSION}/community/ \
--repository https://alpine.global.ssl.fastly.net/alpine/v${ALPINE_VERSION}/main/ \
--no-cache \
&& apk add \
build-base giflib-dev glib-dev lcms2-dev libexif-dev \
libgsf-dev libjpeg-turbo-dev libpng-dev librsvg-dev libwebp-dev \
orc-dev pango-dev tiff-dev \
--virtual vips-dependencies \
--repository https://alpine.global.ssl.fastly.net/alpine/v${ALPINE_VERSION}/community/ \
--repository https://alpine.global.ssl.fastly.net/alpine/v${ALPINE_VERSION}/main/ \
--no-cache \
&& wget -O- https://github.com/libvips/libvips/releases/download/v${VIPS_VERSION}/vips-${VIPS_VERSION}.tar.gz | tar xzC /tmp \
&& cd /tmp/vips-${VIPS_VERSION} \
&& ./configure \
&& make \
&& make install-strip \
&& rm -rf /tmp/vips-${VIPS_VERSION} \
&& apk del vips-dependencies --purge

@ -26,7 +26,9 @@
"server:start:prod": "npm run start:prod --prefix server",
"server:test": "npm test --prefix server",
"start": "concurrently -n server,client \"npm run server:start\" \"npm run client:start\"",
"test": "npm run server:test && npm run client:test"
"test": "npm run server:test && npm run client:test",
"docker-build-base": "docker build -t ghcr.io/plankanban/planka:build-base -f Dockerfile.base .",
"docker-build": "docker build -t ghcr.io/plankanban/planka:build-base -f Dockerfile ."
},
"lint-staged": {
"client/**/*.{js,jsx}": [

Loading…
Cancel
Save