The systemd-docker image on Docker Hub uses an out of date version
of the Docker client. We build our own to get the version required
by recent CoreOS releases. See #646.
Change-Id: I0b1dc6c70f44055c8f92be44cf16269df8a63f0e
We don't rewrite import paths anymore, because we use the new vendor
mechanism that comes with Go 1.5.
Also remove misc/pre-commit.githook because of the above, and because
the rest is covered by devcam hook.
Change-Id: Iafb32e19b21d1df44b9625a5f58bf898e6b51fa8
Update our Go image to use Go1.5.
Also, with Go1.5, we can compile static binaries (with CGO_ENABLED=0 and
--tags=netgo) without having to first rebuild Go itself from source with
CGO_ENABLED=0.
Finally, with Go1.5, we can now cross-compile straight outta the (linux)
binary tarball (without having to first build the necessary runtime in
src).
For both these above reasons, we don't need to use the Go -src tarball,
and we don't need to have a dedicated Go docker image for each GOOS we
cross-compile too.
Yay, progress!
Change-Id: Ibafb542a4771b151638e796ad3df78e0c8f1a4bf
See https://golang.org/s/go15vendor
This commit moves the google.golang.org/cloud/... packages. The rest
of third_party will move later.
This commit is a dependency for some cloud logging work which we'll
develop in Camlistore's tree.
Some new features (build binaries tarballs) added in commit
988fc8a43c depend on some files that were
added to the camli repo in that very commit.
So for these new features to work, the Camlistore source used must be >=
to that revision, hence that bump.
Change-Id: Ibb68c0f1a1c85277becc02ad73b902d77b5bc465
This change:
1) adds misc/docker/go/darwin/Dockerfile to create a docker image with
Go setup for cross-compiling to darwin
2) adds misc/docker/release/build-binaries.go, which works similarly to
misc/docker/server/build-camlistore-server.go. The difference is it
builds all binaries with make.go instead of just camlistored, and
camlistored is hence built with all resources embedded.
3) adds the --build_binaries flag to dock.go to make use of the above.
Maybe 3) should be done in a new file (out of dock.go), but it is
convenient for now for code reuse.
Issue #538
Change-Id: I8ecd50d118a9ff5c3f53812cac4d7a81a0053b4f
Instead of just uploading the unversioned tarball, this change first
uploads a versioned tarball, then makes a copy of it as the unversioned one.
This allows for easier reverts when overwriting the unversioned tarball
by mistake.
Change-Id: Ia8a1b9008e7a203f2fb3b640dc12da432be1baf3
The (camlistored builder + UI resources bundler) was a piece of shell
run in a docker container. That piece of shell is replaced with the
misc/docker/server/build-camlistore-server.go go program. This
program is still run within a container of the camlistore/go image.
It is added "on the fly" as a resource to the camlistore/go image
as a mounted resource.
In addition, build-camlistore-server.go can take a local directory as
the camlistore source (instead of fetching a tarball at the given
revision). dock.go has been adapted to take advantage of that.
Change-Id: If32b523d850f6c932016f18231bb1b1a283e50d3
Because of the hg->git switch and the switch to Go 1.4, which requires
bootstrapping for building from source:
-master now requires an env with a working Go to build builder (instead of
building go tip from source), and master does not monitor changes to the go
tree anymore.
-builder gets Go1.4.1 from the binary tarball (instead of building from
source), and does not build go tip anymore (nor does it run tests with
it).
Keeping it alive properly was not deemed worth the trouble since we plan
on replacing it with a new builder based on the same tools used for the
Go builders.
Change-Id: Idd0864350b27b6523675006f00719fba2d6fc72f
This change makes gce/create.go generate a self-signed certificate
with the hostname from the -hostname argument and upload it to GCS
before creating a new camlistore instance.
It also makes camlistored use baseURL to figure out the hostname
when generating its self-signed certificate.
Change-Id: I64f85853dab34a7ce95e5d5997e58f2e5da43496
Additional check to prevent b bad imports and un-go-fmt'd code
from sneaking in.
If users don't run tests, it will break the builder.
Change-Id: I95c74724aac68d915aa5195b6d8fcb78f92349e0
Use systemd/CoreOS instead of supervisor,
Less InnoDB memory,
No snapshots,
unrelated to Docker image: keep data files on CoreOS /var/lib/mysql-camli so
they persist across reboots.
Change-Id: Ib903c386fb3e2df0b7cf2d3eb466290f2b16f94b
I think I'm not using systemd correctly here. Things get very unhappy
if I reboot CoreOS: the Docker container named 'db' already exists, things keep
flapping up and down (not waiting for their dependencies), etc.
Maybe I need to register stop actions too.
Change-Id: I75ac3e965c03df4f7f3938ff13c66f137948bf4d
The machine now boots with a new pair of cooperating systemd units:
1) cam-journal-gatewayd.service: a copy of the systemd-journal-gatewayd service,
which runs an HTTP interface to the systemd journal.
2) cam-journal-gatewayd.socket: a unix socket listener listening on unix
socket /run/camjournald.sock. Incoming connections will forward to 1).
Then the camlistored.service unit running camlistored under Docker now
passes -v /run/camjournald.sock:/run/camjournald.sock to make that unix socket
available to the Docker container.
Then in camlistored, a new handler at /debug/logs (wrapped in auth
checks) then opens that socket and makes an HTTP request to it,
copying its response (of log lines) back to the browser.
This will ease debugging, letting people only use their browser to
debug (or send logs to the Camlistore developers more likely), rather
than sshing in to CoreOS and learning CoreOS and systemd arcana.
Change-Id: Icd5967ae7e9946d36229bdbc5d37644a11ee5e9f