GCR push very slow - docker

Since a few days, the gcloud docker -- push command has become terrible slow, sometimes taking up to 10 minutes to push a simple change (like a change in default CMD in the Dockerfile)
I saw there was a post a while back (link), but sadly without any good reason why it's slow and/or how to resolve it.
As a side node, I'm building the images using Jenkins on Ubuntu 16.04 using gcloud version 197.0.0
Does anyone else experience the same issues?

Sounds like you might be hitting docker/cli#840.
What version of docker are you using, and does updating to 18.03 fix your issue?

Related

Regarding scikit_learn installation

Hello and thank you for looking at this. I have been using docker to create various multi-arch builds. I have noticed some interesting behavior. When trying to run buildx for image creation, scikit_learn 0.21.3 takes a very long time to download/install (about 2.5 hours). However, when using the regular build command through docker on a single arch, it only takes about 10 minutes or so. The reason I am having to use this specific version of scikit_learn is due to an error I receive from my application where it is unable to find the sklearn.utils.linear_assignment module.
I receive this \nModuleNotFoundError: No module named 'sklearn.utils.linear_assignment_'
The only version I have been able to run is 0.21.3 up to this point. Having said that, I have found more recent versions do install much faster, but again they do not have the linear assigmment module, which is a dependency for my application. Any help or guidance would be greatly appreciated.

Is Docker-ized dev envoirment good for maintaining legacy software?

Let's say I have old, unmaintained application that lives on a VPS (i.e. Symfony 3 PHP app that relies on PHP 5).
If some changes are needed I have to clone this app to my desktop, build it, change and re-deploy. As time goes, recreating desktop dev environment gets harder - in this example I can't simply build the app as I use PHP7 in my CLI that breaks building process.
I tried to dockerize the app, so I added Ubuntu 18 to my docker-compose file... and it doesn't work as latest Ubuntu that has PHP5 support is 14.04. 14.04 is also the oldest (official) version available on DockerHub. But will it be still available in 3 years? If not, Docker won't build a container.
So, my question is: is Docker a right tool to solve described problem at all?
If so, should I backup docker images described that my build relies on?
If not, beside proper maintenance, what tool is better?
You can install PHP5 in newer ubuntu versions, but it means adding an external repository.
You could also create your own docker image, containing only the libraries you want. If so, I'd advise to try and use alpine as a base image. There is a bit of a learning curve to adapt, but once you do it you'll have a small image tailored to your needs.
Given that containers allow you to isolate processus and conf with minimal footprint compared to a VM, I think it is the best option. Tailoring and maintaining your own image is not that expensive in terms of maintenance if you document it correctly, and it will allow you to always have a system 'maintaining' all your precise requirements.

How can I get a tomcat docker image based on rhel7?

The one listed on https://hub.docker.com/_/tomcat is based on debian. Where can I get a rhel based image? Or is there a way I can create it by myself.
I am currently working on rhel 7.6 and have docker installed on my machine?
You have to build it yourself because RHEL is proprietary and therefore underrepresented in docker hub. You could go for a centos version though, which is almost identical.
Note: RHEL would be considered an extremely unusual choice for a container OS. Are you sure you're doing the right thing? If this is a rule given to you by your employer then it's wrong and you should go fix that instead -- it'll be easier than trying to build rhel containers.
You could take a look at this as a starting point for ideas on how to build it yourself: https://github.com/sclorg/rhscl-dockerfiles/blob/master/centos7.python27/Dockerfile.rhel7

How to dockerize Xcode

For CI purposes I have a need to set up a cluster of build slaves capable of building iOS apps. For now I'm relying on a single MacMini -with the aim to deploy several more in the future- and I'd like to virtualize several slaves on top of it. Some of these virtual slaves will build the iOS app, others will be smaller Linux slaves for miscellaneous purposes.
I'm completely new to Docker, so my main question is whether it's possible to dockerize Xcode 9.2 and/or MacOS in order to virtualize my iOS build slaves. I've seen very little literature out there on whether this can be achieved and I've found some images in hub.docker.com but they're not documented and don't appear to be very popular.
I'm going through a Docker tutorial right now and eventually will be attempting this -and if I'm successful I'll be answering my own question here for the benefit of others- but given the lack of information I have doubts on whether it is even possible or where I should even start.
Any tips or pointers on this would be greatly appreciated.
Or if anyone knows for fact that this is not possible and can explain why, that would also save me a lot of time.
OS X does not use the Linux kernel, so it cannot run in a Docker container
XCode is not open-sourced and does not have a Linux installer, so it cannot be used in a Linux Docker image.
It seems like your best bet is to build a Packer template using something like packer-macos osx-vm-templates and integrate that into your pipeline.
Look at Docker-OSX which runs macOS with Xcode support inside Docker.
You can connect to that macOS via SSH or VNC. It might be possible to use the same approach in CI/CD.
Related link from readme: "I want to use Docker-OSX for CI/CD-related purposes (sign into Xcode, Transporter)"

Cannot start container: [8] System error: exec format error

I'm brand new to Stack Overflow and the world of containers, so hopefully my questions aren't too silly.
So first I will say that I'm aware that there are other questions similar to the one I'm asking, but I've tried the solutions in all of the ones I've found and they haven't worked for me. If there is another question out there that does have the answer, I'm really sorry for double-asking!
So, background info: I've got a Raspberry Pi 3 running Raspbian, with docker freshly installed. I'm able to pull images down from repositories with no real issues. However, I can't run any of them. I always get the same error (the title of my question). Someone pointed out that it might be because there are mostly 64-bit images in the repositories and I'm running a 32-bit machine, which I thought was the problem. but then I pulled a 32-bit Debian image (the first thing I could find that was 32-bit) and tried to do docker run with the image ID. but it still comes up with that error.
What else may cause that error? Or maybe it's the fact that I'm doing it on a Pi...? Open to anything!
Thanks in advance!
I have had similar issues when I tried to run Docker images on Rasperri Pi. Most of the Docker images are built for x86/x64 architecture. You need Docker-based apps packaged specifically for ARM to run on Raspberry Pi. Hypriot (Based on Debian) is one of the Raspberry Pi images that built for running latest Docker. Check it out here. They also have images specifically built for ARM. Search for hypriot on docker hub.You still may run these images with your current Docker installation, which I did not try.

Resources