Closed jefflill closed 3 years ago
I think the best thing to do here might just be convert to docker-compose like suggested. Less custom stuff to maintain especially since we are not going to be touching this thing anymore really.
I'm pretty deep in the temporal message alignment ATM but once I'll take some time to do that conversion.
Sure. This isn't really a big priority since the old cadence-dev image is still over at DockerHub so unit testing will still work.
It turns out that the old cadence-dev image isn't actually working either and this is a problem for Loopie. I'm going to assign this to myself and update both the current branch as well as the 1.x branch Loopie is still on.
I can take a look at this tonight if you want. Sorry I did not prioritize this because did not know Loopie was experiencing these issues.
I've updated CadenceFixture
in the master and release-1.5.1 branches to use docker-compose rather than the fancy cadence-dev container image Jack built. The advantage here is that we're using the stock Cadence images rather than needing to build Cadence ourselves so we shouldn't see this kind of problem again. This is what we're doing for Temporal as well.
NOTE: This means that the fixture will use the latest version of Cadence server rather than this being pinned to whatever version we built for our old container image. Cadence is supposed to be backwards compatible with earlier versions so this shouldn't really matter.
Here's the new Cadence DockerCompose file:
version: '3'
services:
cassandra:
image: cassandra:3.11
ports:
- 9042:9042
environment:
- HEAP_NEWSIZE=1M
- MAX_HEAP_SIZE=1024M
deploy:
resources:
limits:
memory: 1536M
statsd:
image: graphiteapp/graphite-statsd
ports:
- 8080:80
- 2003:2003
- 8125:8125
- 8126:8126
cadence:
image: ubercadence/server:master-auto-setup
ports:
- 7933:7933
- 7934:7934
- 7935:7935
- 7939:7939
environment:
- CASSANDRA_SEEDS=cassandra
- STATSD_ENDPOINT=statsd:8125
- DYNAMIC_CONFIG_FILE_PATH=config/dynamicconfig/development.yaml
depends_on:
- cassandra
- statsd
cadence-web:
image: ubercadence/web:latest
environment:
- CADENCE_TCHANNEL_PEERS=cadence:7933
ports:
- 8088:8088
depends_on:
- cadence
NOTE: This also adds graphite-statsd to the mix.
@johncburns1: All of the Cadence unit tests on master are passing except for Test_EndToEnd.BaseDomain. I'm not sure we care about this, but if its easy...
As an aside, the Temporal test fixture compose file is currently failing for me:
System.Exception : Cannot launch application [temporal-dev] - [exitcode=1]: Creating network "temporal-dev_default" with the default driver
Found orphan containers (temporal-admin-tools, temporal-postgresql) for this project. If you removed or renamed this service in your compose file, you can run this command with the --remove-orphans flag to clean it up.
Pulling temporal (temporalio/auto-setup:1.1.0)...
Pulling temporal-web (temporalio/web:1.1.0)...
Creating temporal-dev_cassandra_1 ...
[1A[2K
Creating temporal-dev_cassandra_1 ... [32mdone[0m
[1BRecreating temporal ...
[1A[2K
Recreating temporal ... [32mdone[0m
[1BRecreating temporal-web ...
Host is already in use by another container
[1A[2K
Recreating temporal-web ... [31merror[0m
[1B
ERROR: for temporal-web Cannot start service temporal-web: driver failed programming external connectivity on endpoint temporal-dev_temporal-web_1 (d145e4c4cc82954c1e881c94d1cde534c4d847a70490bf2904bbb8d7037cb791): Bind for 0.0.0.0:8088 failed: port is already allocated
ERROR: for temporal-web Cannot start service temporal-web: driver failed programming external connectivity on endpoint temporal-dev_temporal-web_1 (d145e4c4cc82954c1e881c94d1cde534c4d847a70490bf2904bbb8d7037cb791): Bind for 0.0.0.0:8088 failed: port is already allocated
Encountered errors while bringing up the project.
I'm in the middle of back-porting this change to the Loopie 1.51 release branch. This is getting painful. We're going to need to have Loopie upgrade soon.
Fixed for neonLIBRARY v1.5.1 and v2.11.0
The cadence-dev container image isn't building. I did remove tini from the base Ubuntu layer but this shouldn't impact anything (the image doesn't use this).
I'm going to disable the image build for now and perhaps we should just convert to Docker Compose like we do for Temporal.
NOTE: Note that unit testing will still work because a working image is still over at DockerHub and that's what
CadenceFixture
is still configured to load.ERROR LOG (for completeness): There appears to be a problem with checking out the tagged commit.