Cloudron makes it easy to run web apps like WordPress, Nextcloud, GitLab on your server. Find out more or install now.


Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Bookmarks
  • Search
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo

Cloudron Forum

Apps | Demo | Docs | Install
  1. Cloudron Forum
  2. Announcements
  3. Docker base image - 3.0

Docker base image - 3.0

Scheduled Pinned Locked Moved Announcements
18 Posts 10 Posters 14.4k Views 10 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • girishG Offline
      girishG Offline
      girish
      Staff
      wrote on last edited by girish
      #1

      The base image 3.0 is now ready. It's based off Ubuntu Focal. You can update your custom apps to use this new base image.

      Note that while the database client libs have been upgraded, the server components will only be upgraded with Cloudron 7. We have starting updating apps one by one now.

      Some package updates:

      • Postgres 12
      • ffmpeg 4.2
      • mongodb 4.2
      • add stress utility - i love this tool for oom testing in containers
      • ghostscript
      • imagick (replaces gd)
      • PHP 7.4
      • node 14.15.4
      • go 1.15.7
      • yarn is installed via npm now
      • ruby 2.7
      • contains all the locale data that ubuntu supports

      Final stable base image : cloudron/base:3.0.0@sha256:455c70428723e3a823198c57472785437eb6eab082e79b3ff04ea584faf46e92

      imc67I doodlemania2D 2 Replies Last reply
      6
      • girishG girish

        The base image 3.0 is now ready. It's based off Ubuntu Focal. You can update your custom apps to use this new base image.

        Note that while the database client libs have been upgraded, the server components will only be upgraded with Cloudron 7. We have starting updating apps one by one now.

        Some package updates:

        • Postgres 12
        • ffmpeg 4.2
        • mongodb 4.2
        • add stress utility - i love this tool for oom testing in containers
        • ghostscript
        • imagick (replaces gd)
        • PHP 7.4
        • node 14.15.4
        • go 1.15.7
        • yarn is installed via npm now
        • ruby 2.7
        • contains all the locale data that ubuntu supports

        Final stable base image : cloudron/base:3.0.0@sha256:455c70428723e3a823198c57472785437eb6eab082e79b3ff04ea584faf46e92

        imc67I Offline
        imc67I Offline
        imc67
        translator
        wrote on last edited by
        #2

        @girish Iโ€™m not specialized in this but are locales also part of the base image? If so, then you might add the locales that are also present as language on Cloudron?

        1 Reply Last reply
        0
        • girishG girish

          The base image 3.0 is now ready. It's based off Ubuntu Focal. You can update your custom apps to use this new base image.

          Note that while the database client libs have been upgraded, the server components will only be upgraded with Cloudron 7. We have starting updating apps one by one now.

          Some package updates:

          • Postgres 12
          • ffmpeg 4.2
          • mongodb 4.2
          • add stress utility - i love this tool for oom testing in containers
          • ghostscript
          • imagick (replaces gd)
          • PHP 7.4
          • node 14.15.4
          • go 1.15.7
          • yarn is installed via npm now
          • ruby 2.7
          • contains all the locale data that ubuntu supports

          Final stable base image : cloudron/base:3.0.0@sha256:455c70428723e3a823198c57472785437eb6eab082e79b3ff04ea584faf46e92

          doodlemania2D Offline
          doodlemania2D Offline
          doodlemania2
          App Dev
          wrote on last edited by
          #3

          @girish on node, perhaps we switch to the nvm stuff?

          1 Reply Last reply
          0
          • robiR Offline
            robiR Offline
            robi
            wrote on last edited by
            #4

            Cool, thanks for posting this Girish.

            It would be great to test the size before and after docker-slim minification.

            Conscious tech

            girishG 1 Reply Last reply
            0
            • robiR robi

              Cool, thanks for posting this Girish.

              It would be great to test the size before and after docker-slim minification.

              girishG Offline
              girishG Offline
              girish
              Staff
              wrote on last edited by girish
              #5

              @robi We used to have a flatten script back in the day - https://git.cloudron.io/cloudron/docker-base-image/-/commit/734ba25b3493ed1cf9283d8b10b022439bb22309 . I will post the results if I get to running docker-slim.

              edit: it seems docker-slim is for application images. our base image is not an application image, it is just a bunch of commonly used libraries. if anything, docker-slim should be run in the app images we build. i thought it was some simple minifier

              M 1 Reply Last reply
              1
              • girishG girish

                @robi We used to have a flatten script back in the day - https://git.cloudron.io/cloudron/docker-base-image/-/commit/734ba25b3493ed1cf9283d8b10b022439bb22309 . I will post the results if I get to running docker-slim.

                edit: it seems docker-slim is for application images. our base image is not an application image, it is just a bunch of commonly used libraries. if anything, docker-slim should be run in the app images we build. i thought it was some simple minifier

                M Offline
                M Offline
                malvim
                wrote on last edited by
                #6

                @girish, maybe I'm sidetracking here, and it's just out of curiosity, I have no horse in this race, but: is there a need for an APP image to be based on Ubuntu?

                I understand the need in the base image, lots of libs and binaries and features we need during build time, but what's stopping an app image from, say, using a second FROM statement based off of alpine, for example, and just copying whatever it needs?

                mehdiM girishG 2 Replies Last reply
                0
                • M malvim

                  @girish, maybe I'm sidetracking here, and it's just out of curiosity, I have no horse in this race, but: is there a need for an APP image to be based on Ubuntu?

                  I understand the need in the base image, lots of libs and binaries and features we need during build time, but what's stopping an app image from, say, using a second FROM statement based off of alpine, for example, and just copying whatever it needs?

                  mehdiM Offline
                  mehdiM Offline
                  mehdi
                  App Dev
                  wrote on last edited by
                  #7

                  @malvim Short answer : no, there's nothing stopping an app from not even using the base image at all ๐Ÿ™‚

                  Long answer : the idea was to have a single base image, to minimize the combined size of the docker cache by having all the apps share most of their layers, so you don't have a container layer in each app to download each lib & runtime

                  1 Reply Last reply
                  3
                  • M malvim

                    @girish, maybe I'm sidetracking here, and it's just out of curiosity, I have no horse in this race, but: is there a need for an APP image to be based on Ubuntu?

                    I understand the need in the base image, lots of libs and binaries and features we need during build time, but what's stopping an app image from, say, using a second FROM statement based off of alpine, for example, and just copying whatever it needs?

                    girishG Offline
                    girishG Offline
                    girish
                    Staff
                    wrote on last edited by
                    #8

                    @malvim To add to what @mehdi said, I have often struggled working with minimalistic images because they often lack the tools for debugging. Often I end up in these alpine images which don't have anything installed, no editors/network tools etc. I am not sure how one works with them. Compared to developer time, a big base image which is just 2GB or so is really costing next to nothing.

                    MooCloud_MattM 1 Reply Last reply
                    4
                    • girishG Offline
                      girishG Offline
                      girish
                      Staff
                      wrote on last edited by girish
                      #9

                      Tentative base image is cloudron/base:3.0.0@sha256:3f55a3dbde353d5bb574ca7d66e0a391999f2adbd7dae13bd795ecb8f53e962e .
                      Final image is cloudron/base:3.0.0@455c70428723e3a823198c57472785437eb6eab082e79b3ff04ea584faf46e92

                      The apps below work fine:

                      • Grafana (Go)
                      • Snipe-IT (PHP 7.4)
                      • Verdaccio (node)
                      • Ampache - php 7.4
                      • GitHub Pages (ruby + locale fixes)
                      • Metabase (java)
                      • Moodle - php 7.4
                      • Peertube - does not support node 14 yet, but next release will. so it's fine.
                      • Redmine - 4.1 does not support ruby 2.7 yet - https://redmine.org/projects/redmine/wiki/RedmineInstall . so we cannot update it (it's fine)
                      • GitLab - fails "Could not find openssl-2.2.0 in any of the sources"

                      Big TODO: port all addons/services.

                      1 Reply Last reply
                      4
                      • girishG girish

                        @malvim To add to what @mehdi said, I have often struggled working with minimalistic images because they often lack the tools for debugging. Often I end up in these alpine images which don't have anything installed, no editors/network tools etc. I am not sure how one works with them. Compared to developer time, a big base image which is just 2GB or so is really costing next to nothing.

                        MooCloud_MattM Offline
                        MooCloud_MattM Offline
                        MooCloud_Matt
                        wrote on last edited by
                        #10

                        @girish said in Docker base image - 3.0:

                        I have often struggled working with minimal images because they often lack the tools for debugging

                        You will use minimalism only in production, if you are debugging you can use the full tool-set image, but on production you will only include what's is necessary.

                        In a Apache PHP based app, you don't need 2 web-server, you don't need java or nodejs.

                        @girish said in Docker base image - 3.0:

                        just 2GB

                        2 GB is from 10% to 5% of a Basic NVMe Cloud instances on most provider, is really a lot of space especially during update, it will take resources and time on server that know days are especially small 2 or 3 vCore and 4 to 8 GB of RAM.
                        Most of the time your docker image update is longer because CPU bottleneck not network (we have a proxy for the image on docker hub) we have test that.

                        I don't think is urgent to do or that cloudron need to do it, but i can understand why most of the docker community like small alpine images, and docker is born for that 1 software-1container, but now is thing of the past.

                        @mehdi said in Docker base image - 3.0:

                        container layer

                        btw if you are using "container layer" with small image stack is better, is how docker work better, a cloudron with just nextcloud don't need to have java on it, that's just w8st of space (jdk is from 160 to 180MB).

                        You can have:

                        • Ubuntu base image (with or with out tools that help you debug, depending if is prod or test)
                        • library that the app need to have to work (webserver, php, java) probably all php apps need the same or can have the same, we don't need to be super efficient, just more efficient
                        • the app it self, wordpress, nextcloud, ecc ecc.

                        This can be a possible and probably not so much time consuming to maintain (gitlab ci, is haven in this case), obviously is not the only answer to the image maintenance issue, and one is the big complete image that cloudron is using.

                        Everything have pros and cons.
                        And maybe this look like me angry but i'm not, and cloudron support every app that build on there baseimage or build on top of Alpine, so if somebody don't like it, is easy to build a custom app =D.

                        Matteo. R.
                        Founder and Tech-Support Manager.
                        MooCloud MSP
                        Swiss Managed Service Provider

                        1 Reply Last reply
                        1
                        • LonkleL Offline
                          LonkleL Offline
                          Lonkle
                          wrote on last edited by
                          #11

                          I'm going to convert my VPN container to this base container as well as update my hot fix to 6.1 on timing. Perfect timing for this new base image.

                          1 Reply Last reply
                          0
                          • robiR Offline
                            robiR Offline
                            robi
                            wrote on last edited by
                            #12

                            Can the base image UIDs be modified so they are shifted by 100 or 1000 so container processes can be more easily identified from host system processes?

                            Conscious tech

                            d19dotcaD 1 Reply Last reply
                            1
                            • robiR robi

                              Can the base image UIDs be modified so they are shifted by 100 or 1000 so container processes can be more easily identified from host system processes?

                              d19dotcaD Offline
                              d19dotcaD Offline
                              d19dotca
                              wrote on last edited by d19dotca
                              #13

                              @robi yea thatโ€™d be awesome! Somewhat related to my other issue where the UID used by Cloudron containers was totally confusing me.

                              --
                              Dustin Dauncey
                              www.d19.ca

                              1 Reply Last reply
                              0
                              • girishG Offline
                                girishG Offline
                                girish
                                Staff
                                wrote on last edited by
                                #14

                                Isn't it better to use different commands like systemd-cgls and systemd-cgtop ? I think many tools simply don't work well when mixing host and containers including tools like du. Hard to fix this, just need to write better system tools.

                                robiR 1 Reply Last reply
                                1
                                • girishG girish

                                  Isn't it better to use different commands like systemd-cgls and systemd-cgtop ? I think many tools simply don't work well when mixing host and containers including tools like du. Hard to fix this, just need to write better system tools.

                                  robiR Offline
                                  robiR Offline
                                  robi
                                  wrote on last edited by
                                  #15

                                  @girish said in Docker base image - 3.0:

                                  Isn't it better to use different commands like systemd-cgls and systemd-cgtop ? I think many tools simply don't work well when mixing host and containers including tools like du. Hard to fix this, just need to write better system tools.

                                  Absolutely not. Have you used those? ๐Ÿ˜‰

                                  A combination of top and htop is decent, except for the UIDs which we have control over.

                                  Hence the ask..

                                  Let's make it nice.

                                  Conscious tech

                                  girishG 1 Reply Last reply
                                  0
                                  • robiR robi

                                    @girish said in Docker base image - 3.0:

                                    Isn't it better to use different commands like systemd-cgls and systemd-cgtop ? I think many tools simply don't work well when mixing host and containers including tools like du. Hard to fix this, just need to write better system tools.

                                    Absolutely not. Have you used those? ๐Ÿ˜‰

                                    A combination of top and htop is decent, except for the UIDs which we have control over.

                                    Hence the ask..

                                    Let's make it nice.

                                    girishG Offline
                                    girishG Offline
                                    girish
                                    Staff
                                    wrote on last edited by
                                    #16

                                    @robi even if we change the IDs in the base image (which will break Ubuntu packages), you will only see random/raw uids in the host with ps.

                                    fbartelsF 1 Reply Last reply
                                    0
                                    • girishG girish

                                      @robi even if we change the IDs in the base image (which will break Ubuntu packages), you will only see random/raw uids in the host with ps.

                                      fbartelsF Offline
                                      fbartelsF Offline
                                      fbartels
                                      App Dev
                                      wrote on last edited by
                                      #17

                                      I don't really see the benefit of messing with user ids within the container. The only reason I see is to map access to existing data from a new containerised app (which is not really the case on Cloudron) or if you want to shift privileged user ids to a higher value on the host.

                                      1 Reply Last reply
                                      2
                                      • robiR Offline
                                        robiR Offline
                                        robi
                                        wrote on last edited by
                                        #18

                                        I am open to other solutions.

                                        Anyone know the devs for ps and top?

                                        Can you contribute to their code to mark container IDs with something?

                                        Or add a container aware view to the tools to use?

                                        Conscious tech

                                        1 Reply Last reply
                                        0
                                        • girishG girish referenced this topic on
                                        Reply
                                        • Reply as topic
                                        Log in to reply
                                        • Oldest to Newest
                                        • Newest to Oldest
                                        • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Bookmarks
                                          • Search