Use the existing "expose" section of container yaml files, which has always been publishing ports.
Expose a port if a single port number is specified (`80`).
Publish if a port mapping is specified (`"80:80"`, `"127.0.0.1:20080:80"`).
* Update the vagrant box to "ubuntu/xenial64"
* Ignore .vagrant/
* Don't create /var/discourse symlink on vagrant's provisioning
* Add private network interface to vagrant vm
* Raise exeption if vagrant-disksize plugin is not installed
* Modify the instruction for vagrant
* Remove unnecessary dependencies
Move "discourse" user and "/var/www" directory creation into base image
so that discourse_dev can build from base image directly instead of
requiring the overhead of the full discourse image.
Remove discourse_fast_switch dependency from discourse_dev, and remove
the ruby 2.2/2.0 logic, as Discourse already appears to require 2.3.0 or
greater.
Remove discourse_dev's independent `postgres.template.yml` and
`redis.template.yml` files, and instead derive them from the top-level
templates directory. This ensures that the discourse_dev image is
always up-to-date with the discourse main image.
Add password-less "sudo" permissions for the "discourse" user in the
discourse_dev image. This simplifies (fixes) the "bundle install"
command (and others) as implemented by discourse/bin/docker utilities.
Add image/Makefile so that images can be built even on machines without
Ruby installed. Logic is replicated from `image/build.rb`, and should
result in equivalent images. (Perhaps build.rb should be removed?)
Add automation in Makefile to ensure that all Dockerfiles are updated to
match the version number in the Makefile. (This includes the `/VERSION`
file written into the base image.)
Add image/README.md to describe the images and process.
Update ImageMagick to 6.9.5-9 in the base Dockerfile because 6.9.5-8 is
no longer available. (Perhaps this dependency should be vendored.)
Fix base "boot" failure caused by missing log files on a new instance
(in `base/runit-1.d-00-fix-var-logs`). Before chowning the log files,
"touch" them to ensure they exist. This failure previously prevented
the discourse_dev `ensure-database` script from running, which made
development use of discourse_dev very difficult.
Update to version 1.3.7. (Driven by IMAGE_VERSION in the Makefile.
Mostly, this is to ensure that the next official build of the images
will be *at least* 1.3.7, superseding any previous versions.)
Creates or modifies config of db_shared_buffers, db_work_mem, and
UNICORN_WORKERS based on available RAM. Parameters not set in config
file (i.e., commented out), are left unchanged and a warning is printed.
Uses samples/standalone_template.yml as basis, but if accepted, I
recommend uncommenting these defaults in standalone.yml and using it
instead.
If you attempt to bootstrap a new container without stopping or destroying the original it will fail because postgres will detect that it is running in another container.