Skip to content
This repository has been archived by the owner on Dec 13, 2023. It is now read-only.

Fixes for the docker containers #3765

Closed
wants to merge 38 commits into from
Closed
Show file tree
Hide file tree
Changes from 33 commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
e1a0844
Wait and check only for current iteration task to get completed.
manan164 Mar 2, 2022
9322716
format plugin
manan164 Mar 2, 2022
e4e7e0d
Merge remote-tracking branch 'origin/loop_performance_improvement'
manan164 Apr 4, 2023
90fd3fd
Merge remote-tracking branch 'upstream/main'
manan164 Apr 12, 2023
e6ef05f
Merge branch 'main' of https://github.com/Netflix/conductor
manan164 Jun 14, 2023
3ae3bc2
Merge branch 'main' of https://github.com/Netflix/conductor
manan164 Aug 2, 2023
55ef67e
Merge branch 'main' of https://github.com/Netflix/conductor
manan164 Aug 23, 2023
ad28adc
docker build changes.
manan164 Aug 28, 2023
efe072a
changes
manan164 Aug 29, 2023
90691b3
Merge branch 'main' into docker_buils
manan164 Aug 29, 2023
0cbec91
update doc
manan164 Aug 29, 2023
99f6b7c
docker builds
manan164 Aug 29, 2023
1c07b5f
revert
manan164 Aug 29, 2023
2714253
revert property changes
manan164 Aug 29, 2023
236fd36
Merge branch 'main' of https://github.com/Netflix/conductor into dock…
manan164 Aug 29, 2023
4a95a56
changes.
manan164 Aug 29, 2023
c56b56a
changes
manan164 Aug 31, 2023
96ca951
docker build with community server
v1r3n Sep 6, 2023
3bf2cfe
readme
v1r3n Sep 6, 2023
a616536
Merge branch 'docker_buils' into docker_changes
manan164 Sep 6, 2023
fd23d22
restore compose files
v1r3n Sep 6, 2023
b01460b
removed old compose
v1r3n Sep 6, 2023
06a4076
local container for conductor
v1r3n Sep 7, 2023
373f594
docker changes
v1r3n Sep 9, 2023
22967e3
build fixes
v1r3n Sep 9, 2023
abb08a7
docker compose changes
v1r3n Sep 10, 2023
0785bf2
Update ci.yml
v1r3n Sep 16, 2023
2b6141e
Update ci.yml
v1r3n Sep 16, 2023
aae0a92
Remove local
v1r3n Sep 23, 2023
67279e9
update comments
v1r3n Sep 23, 2023
5739ea4
fixes and readme update
v1r3n Sep 23, 2023
cc21acd
Update README.md
v1r3n Sep 23, 2023
39caae3
Update README.md
v1r3n Sep 23, 2023
f127ac0
fixes
v1r3n Sep 23, 2023
7809a8a
update readme
v1r3n Sep 25, 2023
eab0c5b
Merge branch 'Netflix:main' into main
v1r3n Sep 27, 2023
e33156c
Merge branch 'main' into docker_changes
v1r3n Sep 27, 2023
5a3972c
Merge branch 'docker_changes'
v1r3n Sep 27, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 51 additions & 1 deletion docker/README.md
Original file line number Diff line number Diff line change
@@ -1 +1,51 @@
[Docker Instructions](/docs/docs/gettingstarted/docker.md)

# Conductor Docker Builds

## Pre-built docker images

Conductor server with support for the following backend:
1. Redis
2. Postgres
3. Mysql
4. Cassandra

### Docker File for Server and UI

[Docker Image Source for Server with UI](docker/server/DockerFile)

### Configuration Guide for Conductor Server
Conductor uses a persistent store for managing state.
The choice of backend is quite flexible and can be configured at runtime using `conductor.db.type` property.

Refer to the table below for various supported backend and required configurations to enable each of them.

> [!IMPORTANT]
>
> See [config.properties](docker/server/config/config.properties) for the required properties for each of the backends.
>
> | Backend | Property |
> |------------|------------------------------------|
> | postgres | conductor.db.type=postgres |
> | redis | conductor.db.type=redis_standalone |
> | mysql | conductor.db.type=mysql |
> | cassandra | conductor.db.type=cassandra |
>

Conductor using Elasticsearch for indexing the workflow data.
Currently, Elasticsearch 6 and 7 are supported.

We welcome community contributions for other indexing backends.

**Note:** Docker images use Elasticsearch 7.

## Helm Charts
TODO: Link to the helm charts

## Run Docker Compose Locally
### Use the docker-compose to bring up the local conductor server.

| Docker Compose | Description |
|--------------------------------------------------------------|----------------------------|
| [docker-compose.yaml](docker-compose.yaml) | Redis + Elasticsearch 7 |
| [docker-compose-postgres.yaml](docker-compose-postgres.yaml) | Postgres + Elasticsearch 7 |
| [docker-compose-postgres.yaml](docker-compose-mysql.yaml) | Mysql + Elasticsearch 7 |
31 changes: 0 additions & 31 deletions docker/docker-compose-dynomite.yaml

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,12 @@ services:

conductor-server:
environment:
- CONFIG_PROP=config-mysql-grpc.properties
- conductor.db.type=redis_standalone
- conductor.redis.hosts=rs:6379:us-east-1c
image: conductor:server
build:
context: ../../
dockerfile: docker/server/Dockerfile
context: ..
dockerfile: server/Dockerfile
networks:
- internal
ports:
Expand All @@ -30,8 +31,8 @@ services:
- WF_SERVER=http://conductor-server:8080
image: conductor:ui
build:
context: ../../
dockerfile: docker/ui/Dockerfile
context: ..
dockerfile: ui/Dockerfile
networks:
- internal
ports:
Expand Down
44 changes: 16 additions & 28 deletions docker/docker-compose-postgres.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,29 +13,27 @@ services:
- internal
ports:
- 8080:8080
- 5000:5000
healthcheck:
test: [ "CMD", "curl","-I" ,"-XGET", "http://localhost:8080/health" ]
interval: 60s
timeout: 30s
retries: 12
links:
- elasticsearch:es
- redis:rs
- postgres:postgresdb
- conductor-elasticsearch:es
- conductor-postgres:postgresdb
depends_on:
elasticsearch:
conductor-elasticsearch:
condition: service_healthy
redis:
condition: service_healthy
postgres:
conductor-postgres:
condition: service_healthy
logging:
driver: "json-file"
options:
max-size: "1k"
max-file: "3"

postgres:
conductor-postgres:
image: postgres
environment:
- POSTGRES_USER=conductor
Expand All @@ -45,7 +43,7 @@ services:
networks:
- internal
ports:
- 5432:5432
- 6432:5432
healthcheck:
test: timeout 5 bash -c 'cat < /dev/null > /dev/tcp/localhost/5432'
interval: 5s
Expand All @@ -57,32 +55,20 @@ services:
max-size: "1k"
max-file: "3"

redis:
image: redis:6.2.3-alpine
volumes:
- ./redis.conf:/usr/local/etc/redis/redis.conf
networks:
- internal
ports:
- 6379:6379
healthcheck:
test: [ "CMD", "redis-cli","ping" ]

elasticsearch:
image: elasticsearch:6.8.15
container_name: elasticsearch
conductor-elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.17.11
environment:
- "ES_JAVA_OPTS=-Xms512m -Xmx1024m"
- transport.host=0.0.0.0
- discovery.type=single-node
- xpack.security.enabled=false
- discovery.type=single-node
volumes:
- esdata-conductor:/usr/share/elasticsearch/data
networks:
- internal
ports:
- 9200:9200
- 9300:9300
- 9201:9200
healthcheck:
test: wget http://localhost:9200/ -O /dev/null
test: curl http://localhost:9200/_cluster/health -o /dev/null
interval: 5s
timeout: 5s
retries: 12
Expand All @@ -95,6 +81,8 @@ services:
volumes:
pgdata-conductor:
driver: local
esdata-conductor:
driver: local

networks:
internal:
20 changes: 0 additions & 20 deletions docker/docker-compose-prometheus.yaml

This file was deleted.

46 changes: 14 additions & 32 deletions docker/docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ version: '2.3'
services:
conductor-server:
environment:
- CONFIG_PROP=config-local.properties
- CONFIG_PROP=/app/config/config-redis.properties
image: conductor:server
container_name: conductor-server
build:
Expand All @@ -13,69 +13,51 @@ services:
- internal
ports:
- 8080:8080
- 5000:5000
healthcheck:
test: ["CMD", "curl","-I" ,"-XGET", "http://localhost:8080/health"]
interval: 60s
timeout: 30s
retries: 12
links:
- elasticsearch:es
- redis:rs
- conductor-elasticsearch:es
- conductor-redis:rs
depends_on:
elasticsearch:
conductor-elasticsearch:
condition: service_healthy
redis:
conductor-redis:
condition: service_healthy
logging:
driver: "json-file"
options:
max-size: "1k"
max-file: "3"

conductor-ui:
environment:
- WF_SERVER=http://conductor-server:8080
image: conductor:ui
container_name: conductor-ui
build:
context: ../
dockerfile: docker/ui/Dockerfile
networks:
- internal
ports:
- 5000:5000
links:
- conductor-server
stdin_open: true

redis:
conductor-redis:
image: redis:6.2.3-alpine
volumes:
- ./redis.conf:/usr/local/etc/redis/redis.conf
- ../server/config/redis.conf:/usr/local/etc/redis/redis.conf
networks:
- internal
ports:
- 6379:6379
- 7379:6379
healthcheck:
test: [ "CMD", "redis-cli","ping" ]

elasticsearch:
image: elasticsearch:6.8.15
container_name: elasticsearch
conductor-elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.17.11
environment:
- "ES_JAVA_OPTS=-Xms512m -Xmx1024m"
- transport.host=0.0.0.0
- discovery.type=single-node
- xpack.security.enabled=false
- discovery.type=single-node
volumes:
- esdata-conductor:/usr/share/elasticsearch/data
networks:
- internal
ports:
- 9200:9200
- 9300:9300
- 9201:9200
healthcheck:
test: wget http://localhost:9200/ -O /dev/null
test: curl http://localhost:9200/_cluster/health -o /dev/null
interval: 5s
timeout: 5s
retries: 12
Expand Down
18 changes: 0 additions & 18 deletions docker/grpc/Makefile

This file was deleted.

Loading