dockbuild / dockbuild Goto Github PK
View Code? Open in Web Editor NEWCompiling environments in Docker images.
License: Apache License 2.0
Compiling environments in Docker images.
License: Apache License 2.0
Makefile should allow to build and push
Example: https://github.com/jcfr/dockgit-rocket-filter/blob/master/Makefile
Currently dockbuild/centos6:latest
includes devtoolset-2
but some project can also require devtoolset-3
, what should be the name of our dockbuild images;
dockbuild/centos6:latest # default is devtoolset2
dockbuild/centos6devtoolset3:latest
or consistently rename all images as such (my preferred approach):
dockbuild/devtoolset2-centos5:latest
dockbuild/devtoolset2-centos6:latest
dockbuild/devtoolset3-centos6:latest
dockbuild/devtoolset4-centos7:latest
dockbuild/gcc44-ubuntu1004:latest
dockbuild/gcc54-ubuntu1604:latest
dockbuild/gcc73-ubuntu1804:latest
If you run python -c 'import bz2'
you'll get the error
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named bz2
This is because bzip2-devel
isn't installed when python is built. This can be fixed by adding
yum install bzip2-devel
to the Dockerfile before python is configured/built.
This might seem like an obscure thing, but not having bz2 can screw up pip's ability to download the latest version of a package. You'll see unsupported archive format: .tar.bz2
if you run pip install -v <package>
.
Tried this with the centos5 image:
$ docker run --rm dockbuild/centos5-devtoolset2-gcc4
but nada
For the record, @jcfr wrote this
I added includes folder to work dir (C++), it is requested like this
#include <includes/file.h> in many files
I added include_directories("/work/includes") in CMakeLists.txt
But compilation terminated. fatal error: includes/file.h: No such file or directory
How to add include folders?
Thanks!
build from source + add symlink from /root/...
to '/usr/local/...'
Running the default example there seems to be no conan utility installed. Running pip install conan
as a prerequisite won't work directly because the install destination isn't writable, using pip install --user conan
seems to install it in a black hole that can't be found (it's not put in ~/.local/bin
).
I'm finding the same problem on dockcross so came here for a simpler setup to investigate. Any ideas?
I depend on boost to build, what is the most idiomatic way here? I can see conan, apt/yum, or building the source in the mounted directory as options.
I suggest
(1) we adopt the following tagging convention for docker image:
centosX-latest
centosX-YYYYMMDD
(2) tag source repository using tag like these ones:
centosX-YYYYMMDD
I also suggest we rename (or copy) the existing tag v1.0.0
to centos5-20151210
(2) we option to manage the sources of the different images:
(a) create maintenance branch for each version of centos we support: centos5
, centos6
and centos7
and also a branch named welcome
with a README.md explaining what is available in this repo.
(b) add subdirectory like centos5
, centos6
, centos7
.... Since dockerhub support specifying location of dockerfile, this should work well too: https://docs.docker.com/docker-hub/builds/#create-an-automated-build
Python is currently built as a static executable, but it seems the usual way of building it is with --enable-shared
(it's that way on Ubuntu, etc). Having a python .so
allows for other uses of python than just running the interpreter.
For comparison, it looks like Docker's own official python builds do this:
https://github.com/docker-library/python/blob/master/Dockerfile-debian.template#L41
This is causing issue with build SlicerDocker
$ docker run -ti thewtex/centos-build:v1.0.0 bash
[root@3fc5a7653eef src]# wget https://www.openssl.org/source/openssl-1.0.1e.tar.gz
--2016-05-06 05:36:30-- https://www.openssl.org/source/openssl-1.0.1e.tar.gz
Resolving www.openssl.org... 194.97.150.234, 2001:608:c00:180::1:ea
Connecting to www.openssl.org|194.97.150.234|:443... connected.
Unable to establish SSL connection.
On the other hand, download from https://www.eff.org/ works
[root@3fc5a7653eef src]# wget https://www.eff.org/
--2016-05-06 05:37:35-- https://www.eff.org/
Resolving www.eff.org... 199.27.76.201
Connecting to www.eff.org|199.27.76.201|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 41101 (40K) [text/html]
Saving to: `index.html'
100%[=============================================================================================================================>] 41,101 --.-K/s in 0.04s
2016-05-06 05:37:35 (1.01 MB/s) - `index.html' saved [41101/41101]
xref #33 (comment)
Compilers installed. tools in the path, version of GLIBC/GLIBCXX, etc .. should all be documented. A place for that could either be the wiki or README along side the Dockerfile.
$ docker run dockbuild/ubuntu1004
...
################################################################################
#
# This image is not intended to be run manually.
#
# To create a dockcross helper script for the
# dockcross/linux-armv7 image, run:
#
# docker run --rm dockcross/linux-armv7 > dockcross-linux-armv7
# chmod +x dockcross-linux-armv7
#
# You may then wish to move the dockcross script to your PATH.
#
################################################################################
...
I'm assuming this should be updated to > dockbuild-ubuntu1004
Instead of maintainer the image on thewtex
, what do you think of creating a GitHub organization named dockbuild
(similar to the existing dockcross
one) ?
Cc: @thewtex
Similarly to dockcross, we should have tagged images with the following name YYYYMMDD-SHA{7}
For reference, see https://github.com/dockcross/dockcross/blob/master/Makefile
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.