-
Notifications
You must be signed in to change notification settings - Fork 5.7k
Unable to build using Docker on SemaphoreCI #13848
Comments
@Vanuan Please provide some more details to reproduce your problem. |
Ok. So, let's start from the original issue. icu and openssl (#12948)In Qt5 there were new dependencies introduced: icu and openssl libraries. glibc (GNU C Library) (#13822)One problem still remains. If we build phantomjs on systems where newer version of glibc is installed, we can't use this binary on systems where older version of glibc is installed. It seems that there's no other solution than to build phantomjs on older systems. (however, there is another option I'm currently exploring: http://stackoverflow.com/questions/2856438/how-can-i-link-to-a-specific-glibc-version) SemaphoreCISemaphoreCI provides only Ubuntu 14.04 as a build machine. It has glibc 2.19 installed. |
This is not exactly what I experienced. I discovered that there is no need to remove the -dev packages at all. Those development libraries are simply ignored if PhantomJS build script is correctly told to use the static ICU and OpenSSL instead. |
Related to this is what I found out in #13822 (comment). If PhantomJS binary was built on Ubuntu 14.04, it will not run on CentOS 6 and even Debian wheezy. Hence, the build needs to happen on wheezy so that it's usable in any more modern system. |
I used your script in Ubuntu 14.04 and it worked only after I removed *-dev packages. |
Exactly, and I explained why (different versions of glibc) |
Maybe |
This is the problem. That docker run -v $PWD:/src debian:wheezy /src/deploy/docker-build.sh |
That image is obsoleted, it's not necessary anymore since it's better to use the official wheezy image. |
Base wheezy image doesn't have *-dev packages neither, so there's nothing to remove. |
I understand that. I even know why we need it (glibc problem). |
So why don't you try running that |
If you read my message carefully, you'll understand I've tried that:
|
Here's an output of lscpu on SemaphoreCI machine with docker:
|
I understand that. I assume you've done that with the chosen platform "Ubuntu 14.04 LTS v1512 (beta with Docker support)". It is the usual running-docker-inside-docker. It can work, but this is definitely bound to whatever resource limitation (memory, CPU, etc) on the "outer" container. However, what I proposed was running it with the usual platform "Ubuntu 14.04 LTS v1512" (with 8-core CPU) where you install Docker yourself ( |
Ok, trying to install docker on "Ubuntu 14.04 LTS v1512" |
No wonder the build is going really slow. Comparing the memory (
On the build machine (outside the container):
I don't think there's anything from PhantomJS side that we can do something about. You probably want to bring up with the SemaphoreCI team, e.g. allowing a container to use more CPU cores. |
It looks like Docker doesn't support that kernel version/configuration:
|
Maybe I can create virtualbox inside semaphore's virtual environment? Not sure if it will help running time. |
|
@ariya I need phantomjs binary on CentOS 6. That centos machine doesn't have enough power to build phantomjs there. And I don't have enough resources on my local environment too. |
@Vanuan In that case, the easiest path is to use VirtualBox on your beefy laptop/destop, install CentOS 6, build it there, and extract the binary. |
Response from Semaphore team:
|
This issue will be closed since we can't follow it up any further. It is a limitation on SemaphoreCI. Note that we still plan to use it for checking pull request. SemaphoreCI is perfectly capable of running a regular build, i.e. not inside Docker (#13850). |
The Linux static binary can be built using Docker (#13822). As reported by @Vanuan, in some cases it doesn't work.
The text was updated successfully, but these errors were encountered: