Giter Club home page Giter Club logo

helper-images's Introduction

Docker images for CI system

CI Docker

Those images are used in our CI and build pipelines. They are not suitable for production usage.

Image building

All images should be built with "Automated Build" system used by dockerhub and they should also use "Repository Links" feature to force automatic upgrades when base image was updated.

helper-images's People

Contributors

cakrit avatar dependabot[bot] avatar ferroin avatar fzyzcjy avatar georgeok avatar ilyam8 avatar jrandall avatar k0ste avatar kam1kaze avatar knatsakis avatar lassebm avatar luisj1983 avatar mrzammler avatar ncmans avatar paulfantom avatar paulkatsoulakis avatar prologic avatar rhrn avatar stevenh avatar surajnpn avatar tkatsoulas avatar vincinator avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

helper-images's Issues

Cut down final size of our official Docker images by removing development files.

Due to how we build our Docker images, we need to install some development packages during the build of the base images we use for our final builds. However, we don't actually need those packages at runtime, and we don't remove them after we've installed the things that need to be built against them.

Currently, the primary culprits are:

  • python3-dev
  • gcc
  • musl-dev
  • mariadb-dev
  • postgresql-dev
  • mongo-c-connector-dev

Of these, the first three can be completely removed after the pip install command we run to pull in specific python dependencies. The other three can be mostly removed, but will need the runtime libraries that were linked against to be installed. I'm fairly certain that the relevant packages are, respectively, mariadb-connector-c, postgresql-bdr-libs, and mongo-c-connector.

All of this, including the pip install command, needs to be handled as a single RUN command in base/Dockerfile.

This issue was prompted by @ilyam8 noticing a significant increase in our Docker image sizes (over 350MB) that I'm 99% certain is a result of us now pulling in mongo-c-connector-dev.

@prologic If you want to deal with this yourself that's fine, if not I'll deal with it when i get back from vacation.

docker build is failing for base because of missing so:libnetsnmp.so.40 dependency

Alpine have moved a dependency of nut (in edge/testing) from edge/testing to edge/main, which breaks the final install line in the current base image Dockerfile:

# Add nut dependency from alpine-edge
RUN apk --no-cache add nut --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing

This results in an error such as:

#6 [3/3] RUN apk --no-cache add nut --repository http://dl-cdn.alpinelinux....
#6 0.793 fetch http://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz
#6 0.916 fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz
#6 0.973 fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/community/x86_64/APKINDEX.tar.gz
#6 1.166 ERROR: unsatisfiable constraints:
#6 1.200   so:libnetsnmp.so.40 (missing):
#6 1.200     required by: nut-2.7.4-r7[so:libnetsnmp.so.40]
#6 ERROR: executor failed running [/bin/sh -c apk --no-cache add nut --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing]: runc did not terminate sucessfully

I believe a simple fix would be to list the edge/main repository on the apk command line:

# Add nut dependency from alpine-edge
RUN apk --no-cache add nut --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing --repository http://dl-cdn.alpinelinux.org/alpine/edge/main

Move off of Docker Hub's builder infrastructure to GitHub Actions.

Docker Hub's automated builder infrastructure has horrendous queue times and is not exactly user friendly to work with. The queue times have caused numerous unnecessary delays on multiple occasions.

Given this, we should move our actual build and publishing logic to GitHub Actions, as we already know that works and has good performance.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.