Commit Graph

1097 Commits

Author SHA1 Message Date
Gerhard Lazu 9e9b04e218
Remove 3.7 Debian builds from Travis
Keep forgetting about this file...
2019-01-15 11:36:59 +00:00
Gerhard Lazu aad6239787
Fix 3.7-rc Alpine based build
RabbitMQ version was incorrect, last RC is 3.7.10-rc4
2019-01-15 11:35:41 +00:00
Gerhard Lazu 2258c6995b
Remove 3.7 & 3.7-rc Debian builds
Superceeded by 3.7 Ubuntu-based builds, for more context see
https://github.com/docker-library/rabbitmq/pull/297
2019-01-15 11:34:33 +00:00
Gerhard Lazu 7e7d2810ba
Increase RabbitMQ's PGP key specificity 2019-01-15 11:20:08 +00:00
Gerhard Lazu 2f0a2a96fe
Simplify Erlang/OTP install src dirs deletion 2019-01-15 11:13:34 +00:00
Gerhard Lazu 6631b6ca7e
Do not hint to volumes for conf & log dirs
For context, see
https://github.com/docker-library/rabbitmq/pull/297#discussion_r247737215
2019-01-15 11:10:59 +00:00
Gerhard Lazu 60074843ad
Let pgp-happy-eyeballs handle PGP-keyserver-related issues
For context, see
https://github.com/docker-library/official-images/issues/4252
2019-01-15 10:35:06 +00:00
Gerhard Lazu 4c363b9f87
Delete build script & logs, let Travis handle this now 2019-01-15 10:27:52 +00:00
Gerhard Lazu fb4bd179ec
Make Travis build the rabbitmq:3.7 Ubuntu variant 2019-01-15 10:27:52 +00:00
Gerhard Lazu 517720c63b
Install gosu via apt & simplify the Dockerfile 2019-01-15 10:22:22 +00:00
Gerhard Lazu 668df358b8
Improve the reasoning for LANG LANGUAGE LC_ALL 2019-01-15 10:19:55 +00:00
Gerhard Lazu 990eaf9903
Remove TODO from RabbitMQ's sbin, it's a noop
For context, see
https://github.com/docker-library/rabbitmq/pull/297#discussion_r247731728
2019-01-15 10:14:19 +00:00
Gerhard Lazu c9da62615b
Add /plugins symlink for backwards compatibility
For context, see
https://github.com/docker-library/rabbitmq/pull/297#pullrequestreview-192451466
2019-01-15 10:12:09 +00:00
Gerhard Lazu 5461405b15
Capture RabbitMQ minor version in the build script 2019-01-15 09:47:42 +00:00
Gerhard Lazu 21c07a969b
Copy gosu & docker-entrypoint.sh script from debian to ubuntu
@tianon I've left a few questions for you in the Dockerfile as TODOs.

A few highlighlights:

* I've added capture the way I build this image locally in the build script
* ha.pool.sks-keyservers.net is not as stable as pgpkeys.eu,
  there are many unstable PGP keyservers https://sks-keyservers.net/status/
* GitHub SSL was failing in wget when grabbing gosu, curl is more reliable
* docker-entrypoint.sh fails if rabbitmq-plugins is not invoked with the -q flag,
  a fix since 3.7.10 2da98843a4 (commitcomment-31470432)
2019-01-15 09:47:42 +00:00
Gerhard Lazu f1e3be6aec
Install RabbitMQ, slim down Erlang/OTP & OpenSSL artefacts 2019-01-15 09:47:11 +00:00
Gerhard Lazu 57831db8b9
Start a new stage and only copy the build artefacts required by RabbitMQ
Multi-stage builds are a great feature:
https://docs.docker.com/develop/develop-images/multistage-build/
2019-01-15 09:46:49 +00:00
Gerhard Lazu 631d8f5d2b
Keep the Docker community as maintainer for now
Thanks @michaelklishin!
2019-01-15 09:45:48 +00:00
Gerhard Lazu 1d70488e33
Compile OpenSSL & Erlang/OTP from source, use Ubuntu as the base image
This is a first commit, the feature as a whole is WIP. The next steps
are captured in a TODO at the tail of the Dockerfile. Sharing this
early so that we can discuss the direction that this is going in.
Various decisions made in the Dockerfile have been captured inline in
comments, should make for a good PR discussion.

The primary goal is to upgrade the Erlang/OTP version to latest stable,
which is v21.2.2 at the time of this commit. RabbitMQ v3.7.x will stop
supporting Erlang v20.x in September 2019 (~8 months from now). RabbitMQ
v3.8.x will only support Erlang v21.x. RabbitMQ Erlang/OTP release
support policy was announced on the rabbitmq-users mailing list in
October 2018:
https://groups.google.com/forum/#!msg/rabbitmq-users/G4UJ9zbIYHs/tyt_kDoFBgAJ

The secondary goal is to only ship the required artefacts in the final
image. For example, all Erlang/OTP applications & features which are not
required by RabbitMQ are disabled. I suspect that the final Erlang/OTP
release can be shrunk further (it currently stands 130MB), but this is a
minor concern right now.

Related to the secondary goal, we enable certain features in Erlang/OTP
which are useful when debugging:
* extra microstate accounting is not known to negatively affect
  performance, this feature is exposed via the `rabbitmq-diagnostics
  runtime_thread_stats` command added in v3.7.10
* lock counting is only enabled if the Erlang VM is started in a
  specific mode, this feature doesn't impact the default beam.smp runtime

The final goal is to be explicit about the OpenSSL version that
Erlang/OTP uses. Using a shared OpenSSL might be convenient, but it
has the following drawbacks:

* depending on the base image for OpenSSL updates
* not knowing which OpenSSL version we compile against
* not knowing how OpenSSL was configured
* not being able to change OpenSSL configuration

Compiling OpenSSL adds an extra concern and definitely complicates this
Dockerfile, but one possible mitigation would be to automate version
bumps when a new OpenSSL version gets published. I am also expecting
that images will be automatically built & published from this
Dockerfile. Since OpenSSL is compiled with all defaults, I do not expect
things to stop working and become a maintenance overhead - we are not
using any advanced compilation flags.

I am including the full docker build log, I always find the information
captured in build logs to be helpful.

Resources which I found helpful while putting this Dockerfile together:

* 816bb377a5/packages/erlang-21.1/packaging
* e2e804aeeb/21/Dockerfile
* https://github.com/erlang/docker-erlang-example#2-build-stage-1-create-a-minimal-docker-image
* https://bugs.erlang.org/browse/ERL-823
* http://erlang.org/pipermail/erlang-questions/2019-January/097012.html
* https://github.com/lrascao/erlang-ec2-build
* https://github.com/kerl/kerl/blob/master/kerl
2019-01-15 09:45:48 +00:00
Tianon Gravi b3faf3d1e1
Merge pull request #299 from rabbitmq/rabbitmq-36-eol
Stop building RabbitMQ 3.6 minor, it has been EOL since May 2018
2019-01-14 16:22:38 -08:00
Tianon Gravi 6aeca1a45d Update .travis.yml too 2019-01-14 16:21:50 -08:00
Gerhard Lazu f9791ecb44
Stop building RabbitMQ 3.6 minor, it has been EOL since May 2018
For more info, see:
https://groups.google.com/forum/#!msg/rabbitmq-users/kXkI-f3pgEw/UFowJIK4BQAJ
2019-01-14 14:44:33 +00:00
yosifkit 3740043813
Merge pull request #289 from infosiftr/gpg-batch
Update "gpg" invocations to use "--batch"
2018-11-14 15:51:59 -08:00
Tianon Gravi 2f5341aa50 Update "gpg" invocations to use "--batch"
See https://bugs.debian.org/913614
2018-11-14 12:46:25 -08:00
yosifkit 5223e50ac4
Merge pull request #285 from infosiftr/copy-ssl
Copy SSL certificate files when run as root (while they're most likely to be readable by our user)
2018-10-26 13:17:52 -07:00
Tianon Gravi 1a8fd1c6ee Copy SSL certificate files when run as root (while they're most likely to be readable by our user) 2018-10-25 17:14:03 -07:00
Tianon Gravi c60adc9a44
Merge pull request #281 from infosiftr/chown
Only chown things in the entrypoint that are not already owned by rabbitmq
2018-09-28 10:57:25 -07:00
Joe Ferguson fa42cf263e Only chown things in the entrypoint that are not already owned by rabbitmq 2018-09-24 15:52:13 -07:00
Tianon Gravi 406d5ee14a Update comment to be consistent between 3.6 and 3.7 2018-09-21 13:07:13 -07:00
Docker Library Bot ba3f7f3135 Update to 3.7.8-rc.4 2018-09-21 05:05:09 +00:00
Docker Library Bot 1ee6f13f40 Update to 3.7.8-rc.4, debian 3.7.8.rc.4-1 2018-09-21 05:05:09 +00:00
Docker Library Bot 6a57996987 Update to 3.7.8 2018-09-20 23:05:22 +00:00
Docker Library Bot d566a9b72e Update to 3.7.8, debian 3.7.8-1 2018-09-20 23:05:22 +00:00
Tianon Gravi 7a26bf5bcc
Merge pull request #270 from infosiftr/pgp-happy-eyeballs
Add "pgp-happy-eyeballs" in Travis to help cut down on gpg-related issues
2018-07-30 15:17:17 -07:00
Tianon Gravi 13c512c025 Add "pgp-happy-eyeballs" in Travis to help cut down on gpg-related issues 2018-07-30 10:25:23 -07:00
Tianon Gravi 10ad9d8534 Remove ending year from LICENSE
See https://github.com/docker-library/golang/pull/212
2018-07-30 09:16:34 -07:00
Tianon Gravi 81f98fc2db
Merge pull request #268 from michael-k/alpine-3.8
Bump alpine to 3.8
2018-07-10 13:58:57 -06:00
Michael Käufl 32c80d4ef9 Bump alpine to 3.8 2018-07-10 09:36:15 +02:00
Docker Library Bot 92c53e854f Update to 3.7.7-rc.2, debian 3.7.7.rc.2-1 2018-07-05 23:05:11 +00:00
Docker Library Bot 52714c8036 Update to 3.7.7-rc.2 2018-07-05 23:05:11 +00:00
Docker Library Bot 80f900f149 Update to 3.7.7 2018-07-05 17:05:11 +00:00
Docker Library Bot d5b3f8a8f4 Update to 3.7.7, debian 3.7.7-1 2018-07-05 17:05:11 +00:00
Docker Library Bot 910a215f0a Update to 3.7.6-rc.2, debian 3.7.6.rc.2-1 2018-06-13 23:05:11 +00:00
Docker Library Bot 5388a74cfb Update to 3.7.6-rc.2 2018-06-13 23:05:11 +00:00
Docker Library Bot 46319b5426 Update to 3.6.16 2018-06-13 17:05:14 +00:00
Docker Library Bot fec4ea1359 Update to 3.7.6, debian 3.7.6-1 2018-06-13 17:05:14 +00:00
Docker Library Bot fa1276bb52 Update to 3.7.6 2018-06-13 17:05:14 +00:00
Docker Library Bot 17eebc8b38 Update to 3.6.16, debian 3.6.16-1 2018-06-13 17:05:14 +00:00
Tianon Gravi d7096266df Install GNU wget in Alpine (overcome wget: error getting response: Connection reset by peer) 2018-05-29 14:20:50 -07:00
Tianon Gravi 736a3b3e4d Add simple logic to skip RCs in "library/rabbitmq" after GA 2018-05-29 09:41:59 -07:00