From 36ef2b51ec8200dd6c290c0ae5ae4bb8c7e90582 Mon Sep 17 00:00:00 2001 From: Sebastien Clement Date: Wed, 10 Feb 2021 16:38:34 +0100 Subject: [PATCH] :hammer: Rebuild Dockerfile to be more layer friendly --- .github/workflows/build_addon.yml | 3 +- nextcloud_backup/.dockerignore | 119 ++++++++++++++++++++++++++++++ nextcloud_backup/Dockerfile | 12 ++- 3 files changed, 132 insertions(+), 2 deletions(-) create mode 100644 nextcloud_backup/.dockerignore diff --git a/.github/workflows/build_addon.yml b/.github/workflows/build_addon.yml index 34d4ec4..97a2c6a 100644 --- a/.github/workflows/build_addon.yml +++ b/.github/workflows/build_addon.yml @@ -90,4 +90,5 @@ jobs: BUILD_FROM=${{env.BUILD_FROM}} BUILD_VERSION=${{env.VERSION}} IMAGE_SOURCE=${{env.IMAGE_SOURCE}} - file: ./${{env.TARGET}}/Dockerfile \ No newline at end of file + file: ./${{env.TARGET}}/Dockerfile + cache-from: type=registry,ref=${{env.REPOSITORY}}/${{env.IMAGE}}/${{matrix.arch}}:latest \ No newline at end of file diff --git a/nextcloud_backup/.dockerignore b/nextcloud_backup/.dockerignore new file mode 100644 index 0000000..0eedb9b --- /dev/null +++ b/nextcloud_backup/.dockerignore @@ -0,0 +1,119 @@ +# Created by .ignore support plugin (hsz.mobi) +### Node template +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) +web_modules/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache +.parcel-cache + +# Next.js build output +.next +out + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and not Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test + +# yarn v2 +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* + diff --git a/nextcloud_backup/Dockerfile b/nextcloud_backup/Dockerfile index df51235..15d94db 100644 --- a/nextcloud_backup/Dockerfile +++ b/nextcloud_backup/Dockerfile @@ -3,15 +3,25 @@ ARG BUILD_FROM=hassioaddons/base:8.0.1 FROM ${BUILD_FROM} # Copy root filesystem -COPY rootfs / +COPY rootfs/etc /etc/ +COPY rootfs/usr /usr/ # Setup base RUN apk add --no-cache \ nodejs \ npm +# Copy only package*.json +COPY rootfs/opt/nextcloud_backup/package*.json /opt/nextcloud_backup/ + +WORKDIR /opt/nextcloud_backup/ + +# Install packages RUN npm ci --only=production +# Copy all source code +COPY rootfs/opt/ /opt/ + # Build arguments ARG BUILD_ARCH ARG BUILD_DATE