Build failure. docker-compose not found on Solaris


(NAKAJIMA Takaaki) #1

I tried to build beats on Solaris 11.2 x86.

  • Version: (commit) 56a029633a00b8fc19c4ad00cab42d63ab7ac138
  • Operating System: SunOS goshawk 5.11 11.2 i86pc i386 i86pc Solaris
  • golang: go1.6.1 solaris/amd64

I cloned repository from git and ran make in beats directory.

$ gmake
(snip)
docker-compose -f docker-compose.yml build
bash: docker-compose: command not found
make[3]: *** [build-image] Error 127
make[3]: Leaving directory `/home/ryumei/go/src/github.com/elastic/beats/libbeat'
make[2]: *** [integration-tests-environment] Error 2
make[2]: Leaving directory `/home/ryumei/go/src/github.com/elastic/beats/libbeat'
make[1]: *** [testsuite] Error 2
make[1]: Leaving directory `/home/ryumei/go/src/github.com/elastic/beats/libbeat'
make: *** [testsuite] Error 1

The error caused by absece of docker-compose.
For now docker-compose cannot run on Solaris.

At a minimum I would like to chenge TEST_ENVIRONMENTS
of libbeats/Makefile to false for Solaris
and to evade errors of sub-sequent tests,
I deployed an elasticsearch and a kafka on localhost.

Some hypervisors such as Oracle VirtualBox
brings to execute test for various environments.
However it may be not a reasonable solution.


(Mark Walkom) #2

We do not support Solaris as it has no go compiler.


(Magnus B├Ąck) #3

Go supports Solaris but not Docker.

Disabling Docker-dependent tests for non-supported platforms sounds like a reasonable idea. Until that's been done (if ever) it should be possible to only run the make goal for building the various beats.


(Mark Walkom) #4

Ahh yeah, it's non-SPARC these days isn't it.


(NAKAJIMA Takaaki) #5

Thank you warkolm and magnusbaeck.

I know that Solaris (x86 and SPARC) are not officially supported.
I have tried to build and run them on various envs.

P.S.
Elasticsearch and Logstash v5.0.0-alpha work my x86-Solaris box with Oracle JVM.


(Steffen Siering) #6

there are 3 types of tests in beats. Only integration tests (in libbeat to test outputs) and system tests require docker to setup some kind of testing infrastructure. The unit tests (run $ go test ./...) do not require docker.

Just run $ make build or $ go build in each beats directory should build the executable.


(system) #7