blob: 2de7d68304d85432bc14231a2fbbf27fb105eaa6 [file] [log] [blame] [view]
jfarrelle03f7e82015-02-18 23:25:54 -05001# Apache Thrift Docker containers
James E. King, III65efdff2017-09-25 00:13:38 -04002
James E. King, IIId7142b72017-09-01 13:00:36 -07003Docker containers used to build and test Apache Thrift for a variety of platforms.
jfarrelle03f7e82015-02-18 23:25:54 -05004
James E. King, IIId7142b72017-09-01 13:00:36 -07005## Available Containers
jfarrelle03f7e82015-02-18 23:25:54 -05006
James E. King, III65efdff2017-09-25 00:13:38 -04007The Travis CI (continuous integration) builds use the Ubuntu Trusty and Xenial images to maximize
8language level coverage. The other images may or may not work for all languages.
James E. King, IIId7142b72017-09-01 13:00:36 -07009
10### Ubuntu
11* trusty
12* xenial (current)
jfarrelle03f7e82015-02-18 23:25:54 -050013
James E. King, III65efdff2017-09-25 00:13:38 -040014### CentOS
15* 7.3
16 * make check in lib/py may hang in test_sslsocket - root cause unknown
17
18### Debian
19* jessie
20* stretch
21 * make check in lib/cpp fails due to https://svn.boost.org/trac10/ticket/12507
22
jfarrelle03f7e82015-02-18 23:25:54 -050023## Dependencies
James E. King, IIId7142b72017-09-01 13:00:36 -070024* A working Docker environment. A Vagrantfile is provided which will setup an Ubuntu host and working Docker environment as well as build the Apache Thrift Docker container for testing and development.
jfarrelle03f7e82015-02-18 23:25:54 -050025
26## Usage
James E. King, IIId7142b72017-09-01 13:00:36 -070027From the Apache Thrift code base root:
jfarrelle03f7e82015-02-18 23:25:54 -050028
29* Build
30
James E. King, IIId7142b72017-09-01 13:00:36 -070031 docker build -t thrift build/docker/ubuntu-xenial
jfarrelle03f7e82015-02-18 23:25:54 -050032
33 or
34
James E. King, IIId7142b72017-09-01 13:00:36 -070035 docker build -t thrift build/docker/centos-7.3
jfarrelle03f7e82015-02-18 23:25:54 -050036
37* Run
38
Nobuaki Sukegawaa6ab1f52015-11-28 15:04:39 +090039 docker run -v $(pwd):/thrift/src -it thrift /bin/bash
jfarrelle03f7e82015-02-18 23:25:54 -050040
James E. King, IIId7142b72017-09-01 13:00:36 -070041## Core Tool Versions per Dockerfile
James E. King, III65efdff2017-09-25 00:13:38 -040042| Tool | centos-7.3 | debian-stretch | ubuntu-trusty | ubuntu-xenial | Notes |
43| :-------- | :--------- | :------------- | :------------ | :------------ | :---- |
44| ant | 1.9.2 | 1.9.9 | 1.9.3 | 1.9.6 | |
45| autoconf | 2.69 | 2.69 | 2.69 | 2.69 | |
46| automake | 1.13.4 | 1.15 | 1.14.1 | 1.15 | |
47| bison | 2.7 | 3.0.4 | 3.0.2 | 3.0.4 | |
48| boost | 1.53.0 | 1.62.0 | 1.54.0 | 1.58.0 | |
49| cmake | 3.6.3 | 3.7.2 | 3.2.2 | 3.5.1 | |
50| flex | 2.5.37 | 2.6.1 | 2.5.35 | 2.6.0 | |
51| glibc | 2.17 | 2.24 | 2.19 | 2.23 | |
52| libevent | 2.0.21 | 2.0.21 | 2.0.21 | 2.0.21 | |
53| libstdc++ | 4.8.5 | 6.3.0 | 4.8.4 | 5.4.0 | |
54| make | 3.82 | 4.1 | 3.81 | 4.1 | |
55| openssl | 1.0.1e | 1.1.0f | 1.0.1f | 1.0.2g | |
James E. King, IIId7142b72017-09-01 13:00:36 -070056
57## Language Versions per Dockerfile
James E. King, III65efdff2017-09-25 00:13:38 -040058| Language | centos-7.3 | debian-stretch | ubuntu-trusty | ubuntu-xenial | Notes |
59| :-------- | :--------- | :------------- | :------------ | :------------ | :---- |
60| as3 | | | | | Not in CI |
61| C++-gcc | 4.8.5 | 6.3.0 | 4.8.4 | 5.4.0 | |
62| C++-clang | 3.4.2 | 3.8.1 | 3.4 | 3.8 | |
63| C# (mono) | 4.6.2 | 4.6.2.7 | 5.2.0.224 | 5.2.0.215 | |
64| c_glib | 2.46.2 | 2.50.3 | 2.40.2 | 2.48.2 | |
65| cocoa | | | | | Not in CI |
66| d | 2.076.0 | 2.076.0 | 2.070.0 | 2.075.1 | |
67| dart | 1.24.2 | 1.24.2 | 1.24.2 | 1.24.2 | |
68| delphi | | | | | Not in CI |
69| dotnet | | | | | Not in CI |
70| erlang | 20 | 19.2 | 20 | 18.3 | |
71| go | 1.9 | 1.7.4 | 1.4.3 | 1.6.2 | |
72| haskell | 7.6.3 | 8.0.1 | 7.6.3 | 7.10.3 | |
73| haxe | | 3.2.1 | 3.2.1 | 3.2.1 | |
74| java | 1.8.0_141 | 1.8.0_141 | 1.7.0_151 | 1.8.0_131 | |
75| js | | | | | Unsure how to look for version info |
76| lua | 5.3.4 | 5.2.4 | 5.2.3 | 5.2.4 | |
77| nodejs | 6.11.1 | 8.4.0 | 4.8.4 | 7.10.1 | Node 8.5 broke copyFile and jsdoc |
78| ocaml | 4.01.0 | 4.02.3 | 4.02.3 | 4.02.3 | |
79| perl | 5.16.3 | 5.24.1 | 5.18.2 | 5.22.1 | |
80| php | 5.4.16 | 7.0.19 | 5.5.9 | 7.0.22 | |
81| python | 2.7.5 | 2.7.13 | 2.7.6 | 2.7.12 | |
82| python3 | 3.4.5 | 3.5.3 | 3.4.3 | 3.5.2 | |
83| ruby | 2.0.0p648 | 2.3.3p222 | 1.9.3p484 | 2.3.1p112 | |
84| rust | 1.17.0 | 1.14.0 | 1.17.0 | 1.15.1 | Rust is too old on stretch |
85| smalltalk | | | | | Not in CI |
86| swift | | | | | Not in CI |
James E. King, IIId7142b72017-09-01 13:00:36 -070087