How to create stack in tutum with docker-compose.yml file? - docker-compose

I am trying to build a Stack as follows:
redis:
image: redis
ports:
- '6379'
app:
build: .
links:
- redis
when I push "Create Stack" button, I get this error:
Oops!
Service 'app': Value {u'build': u'.', u'links': [u'redis'], u'name': u'app'} for field '<obj>' contains additional property 'build' not defined by 'properties' or 'patternProperties' and additionalProperties is False. See 'https://support.tutum.co/support/solutions/articles/5000583471' for more details
Can someone help me with this please?

The Tutum documentation states the following at the bottom of the page:
Docker-compose non-supported keys
Tutum.yml has been designed with docker-compose.yml in mind to maximize compatibility, but the following keys are not supported:
build
external_links
env_file
This clearly states that build is not a supported key, which is what your error message also says. It looks like you'll have to remove the build key from your file.

Related

Failed to load advanced configuration file "/etc/rabbitmq/advanced.config": unknown POSIX error

I'm getting error when configuration file is set.
My host is a Ubuntu 22.04
Inside the docker container the user is rabbitmq, using id -u rabbitmq the $UID is 999
I changed the file using: chown 999 advanced.config
But the same error still persists.
Failed to load advanced configuration file "/etc/rabbitmq/advanced.config": unknown POSIX error
Error during startup: {error,failed_to_read_advanced_configuration_file}
version: "3.2"
services:
rabbitmq2:
image: rabbitmq:3-management
hostname: rabbitmq2
container_name: 'rabbitmq2'
ports:
- "5672:5672"
- "15672:15672"
- "5552:5552"
volumes:
- ./advanced/rabbitmq2/advanced.config:/etc/rabbitmq/advanced.config
# or using:
# - type: bind
# source: $PWD/advanced/rabbitmq2/advanced.config
# target: /etc/rabbitmq/advanced.config
environment:
- RABBITMQ_ADVANCED_CONFIG_FILE=/etc/rabbitmq/advanced.config
If I use another place to put the file, or another file name, the container runs, but Rabbitmq doesn't load the configuration file.
I changed the content of the file and it didn't work (rabbitmq can't load the file), I tried using blank file, and using some configurations, for example:
[
%% 4 replicas by default, only makes sense for nine node clusters
{rabbit, [{quorum_cluster_size, 4},
{quorum_commands_soft_limit, 512}]}
]
Be sure the format is correct:
[
%% 4 replicas by default, only makes sense for nine node clusters
{rabbit, [{quorum_cluster_size, 4},
{quorum_commands_soft_limit, 512}]}
].
Note the trailing period.
NOTE: the RabbitMQ team monitors the rabbitmq-users mailing list and only sometimes answers questions on StackOverflow.

Error when opening home page in business central when using PLANNER_AND_RULES profile

I'm trying out RedHat's Business Central using a docker-compose file as described in https://github.com/jboss-dockerfiles/business-central. At startup it runs a kie-server (quay.io/kiegroup/kie-server-showcase:7.67.0.Final) and a business-central webserver (quay.io/kiegroup/business-central-workbench-showcase:7.67.0.Final).
Because I'm only interested in the drools part and not the jbpm part, I starting the business-central server with -Dorg.kie.workbench.profile=PLANNER_AND_RULES as described in https://docs.jboss.org/drools/release/7.67.0.Final/drools-docs/html_single/#_selecting_a_profile
After login with admin I receive the following error:
business-central_1 | 18:11:13,321 ERROR [org.kie.workbench.common.services.backend.logger.GenericErrorLoggerServiceImpl] (default task-2) Error from user: admin Error ID: -1427996616 Location: HomePerspective|org.kie.workbench.common.screens.home.client.HomePresenter Exception: Uncaught exception: Client-side exception occurred although RPC call succeeded. Caused by: The profile is not expected and profile to define product name
Below, you can find the docker-compose file used:
version: "3.2"
services:
business-central:
image: quay.io/kiegroup/business-central-workbench-showcase:7.67.0.Final
ports:
- "8090:8080"
- "8091:8001"
environment:
KIE_SERVER_LOCATION: http://kie-server:8080/kie-server/services/rest/server
JAVA_OPTS: "-Xms256m -Xmx2048m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=512m -Djava.net.preferIPv4Stack=true -Dfile.encoding=UTF-8 -Dorg.kie.workbench.profile=PLANNER_AND_RULES"
kie-server:
image: quay.io/kiegroup/kie-server-showcase:7.67.0.Final
environment:
KIE_SERVER_ID: sample-server
KIE_SERVER_LOCATION: http://kie-server:8080/kie-server/services/rest/server
KIE_SERVER_CONTROLLER: http://business-central:8080/business-central/rest/controller
KIE_MAVEN_REPO: http://business-central:8080/business-central/maven2
ports:
- "8092:8080"
depends_on:
- business-central
volumes:
business-central_data:
UPDATE: on 2022-04-07
I also looked at the source code in github but couldn't find any reference to PLANNER_AND_RULES. I looked at several repo's in https://github.com/kiegroup/:
https://github.com/kiegroup/drools
https://github.com/kiegroup/droolsjbpm-build-bootstrap
https://github.com/kiegroup/droolsjbpm-knowledge
https://github.com/kiegroup/kie-soup
I have no idea how where to look for ;-(.
I found a very disturbing picture on explaining all the repo's that are being used, but it would be good if someone pointed out what repo to look for :-).

Is it a good idea to add meta data in a docker-compose file

I plan to add meta information in my docker-compose files, but I don't know if it's possible/a good way.
Figure this service, and the meta key:
OldMongoDB:
image: mongo:3.2
environment:
- URL: mongodb://localhost:27015
ports:
- "27015:27017"
meta:
- meta1: "some value usefull in tests"
- meta2: "other value usefull in tests"
Is it good for you to store additional values inside a docker-compose?
This is to be used by test scripts.

In docker compose file set environment as list

I have an application that on play that use aerospike
in application.conf i have a param that i can rewrite from environments
aerospike.hosts = ["192.168.33.10"]
aerospike.hosts = ${?DS_AEROSPIKE_HOSTS}
how i can set list of hosts in my docker compose file?
version: '3.1'
services:
ds-aerospike-db:
image: aerospike/aerospike-server
restart: always
volumes:
- volume:/opt/aerospike/etc
command: ["--config-file","/opt/aerospike/etc/aerospike.conf"]
ports:
- 3000:3000
dashboard:
image: dashboard:0.1
restart: always
ports:
- 9000:9000
environment:
DS_AEROSPIKE_HOSTS: '["192.168.33.10"]'
this format is an error DS_AEROSPIKE_HOSTS: '["192.168.33.10"]'
I believe you can't pass an array to the ENV variable.
But you can pass it as a string, and then, later, parse string at your application.
environment:
- DS_AEROSPIKE_HOSTS='192.168.33.10,192.168.33.11'
the valid docker-compose.yml syntax is stated at docs
https://docs.docker.com/compose/environment-variables/
I'm not familiar with scala, but I believe you can do something like
aerospike.hosts = ${?DS_AEROSPIKE_HOSTS}.split(',')
You have a couple of options:
You can include a docker.conf file in your Docker build and inject the settings you want into that file. Then you can include the docker.conf file from your application.conf. E.g. add this to your application.conf:
include "docker.conf"
You can use an environment varible to pass a string value (as suggested by Stanislav) but then convert it to a sequence. The idiomatic way to do this is to make a ConfigLoader and then use it to convert a String to a Seq[String]. E.g. something like:
implicit val stringSeqLoader: ConfigLoader[Seq[String]] =
ConfigLoader(_.getString).map(_.split(','))

Bluemix cf push error with manifest: expected services to be a list of strings

I'm trying to push an app to Bluemix on a Linux OS. However, the command line returns an error involving the manifest file:
Error reading manifest file:
Expected services to be a list of strings.
Here is the code for the manifest file:
applications:
- name: IdeaSocial
memory: 1024M
instances: 1
host: IdeaSocial
domain: mybluemix.net
path: .
services:
-SQL Database-v5
How do I fix this? Is there a form that the file needs to be in for the current version of Bluemix?
Add quotes around SQL Database-v5 to have it treated as a single string even though there is a space in it. Spaces matter in YAML.
...
services:
- "SQL Database-v5"
The documentation has more information and examples.