Skip to content

Commit

Permalink
Fix for docker-compose v2.0.x
Browse files Browse the repository at this point in the history
Signed-off-by: Nicko Guyer <nicko.guyer@kaleido.io>
  • Loading branch information
nguyer committed Oct 6, 2021
1 parent db1ca08 commit 897aa1c
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 34 deletions.
15 changes: 8 additions & 7 deletions internal/blockchain/ethereum/ethconnect/docker.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,16 +23,17 @@ import (
"github.com/hyperledger/firefly-cli/pkg/types"
)

func GetEthconnectServiceDefinitions(members []*types.Member) []*docker.ServiceDefinition {
serviceDefinitions := make([]*docker.ServiceDefinition, len(members))
for i, member := range members {
func GetEthconnectServiceDefinitions(s *types.Stack) []*docker.ServiceDefinition {
serviceDefinitions := make([]*docker.ServiceDefinition, len(s.Members))
for i, member := range s.Members {
serviceDefinitions[i] = &docker.ServiceDefinition{
ServiceName: "ethconnect_" + member.ID,
Service: &docker.Service{
Image: "ghcr.io/hyperledger/firefly-ethconnect:latest",
Command: "rest -U http://127.0.0.1:8080 -I ./abis -r http://geth:8545 -E ./events -d 3",
DependsOn: map[string]map[string]string{"geth": {"condition": "service_started"}},
Ports: []string{fmt.Sprintf("%d:8080", member.ExposedEthconnectPort)},
Image: "ghcr.io/hyperledger/firefly-ethconnect:latest",
ContainerName: fmt.Sprintf("%s_ethconnect_%v", s.Name, i),
Command: "rest -U http://127.0.0.1:8080 -I ./abis -r http://geth:8545 -E ./events -d 3",
DependsOn: map[string]map[string]string{"geth": {"condition": "service_started"}},
Ports: []string{fmt.Sprintf("%d:8080", member.ExposedEthconnectPort)},
Volumes: []string{
fmt.Sprintf("ethconnect_abis_%s:/ethconnect/abis", member.ID),
fmt.Sprintf("ethconnect_events_%s:/ethconnect/events", member.ID),
Expand Down
13 changes: 7 additions & 6 deletions internal/blockchain/ethereum/geth/geth_provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -139,15 +139,16 @@ func (p *GethProvider) GetDockerServiceDefinitions() []*docker.ServiceDefinition
serviceDefinitions[0] = &docker.ServiceDefinition{
ServiceName: "geth",
Service: &docker.Service{
Image: "ethereum/client-go:release-1.9",
Command: gethCommand,
Volumes: []string{"geth:/data"},
Logging: docker.StandardLogOptions,
Ports: []string{fmt.Sprintf("%d:8545", p.Stack.ExposedBlockchainPort)},
Image: "ethereum/client-go:release-1.9",
ContainerName: fmt.Sprintf("%s_geth", p.Stack.Name),
Command: gethCommand,
Volumes: []string{"geth:/data"},
Logging: docker.StandardLogOptions,
Ports: []string{fmt.Sprintf("%d:8545", p.Stack.ExposedBlockchainPort)},
},
VolumeNames: []string{"geth"},
}
serviceDefinitions = append(serviceDefinitions, ethconnect.GetEthconnectServiceDefinitions(p.Stack.Members)...)
serviceDefinitions = append(serviceDefinitions, ethconnect.GetEthconnectServiceDefinitions(p.Stack)...)
return serviceDefinitions
}

Expand Down
41 changes: 23 additions & 18 deletions internal/docker/docker_config.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,15 +43,16 @@ type ServiceDefinition struct {
}

type Service struct {
Image string `yaml:"image,omitempty"`
Build string `yaml:"build,omitempty"`
Command string `yaml:"command,omitempty"`
Environment map[string]string `yaml:"environment,omitempty"`
Volumes []string `yaml:"volumes,omitempty"`
Ports []string `yaml:"ports,omitempty"`
DependsOn map[string]map[string]string `yaml:"depends_on,omitempty"`
HealthCheck *HealthCheck `yaml:"healthcheck,omitempty"`
Logging *LoggingConfig `yaml:"logging,omitempty"`
ContainerName string `yaml:"container_name,omitempty"`
Image string `yaml:"image,omitempty"`
Build string `yaml:"build,omitempty"`
Command string `yaml:"command,omitempty"`
Environment map[string]string `yaml:"environment,omitempty"`
Volumes []string `yaml:"volumes,omitempty"`
Ports []string `yaml:"ports,omitempty"`
DependsOn map[string]map[string]string `yaml:"depends_on,omitempty"`
HealthCheck *HealthCheck `yaml:"healthcheck,omitempty"`
Logging *LoggingConfig `yaml:"logging,omitempty"`
}

type DockerComposeConfig struct {
Expand All @@ -75,11 +76,12 @@ func CreateDockerCompose(stack *types.Stack) *DockerComposeConfig {
Volumes: make(map[string]struct{}),
}

for _, member := range stack.Members {
for i, member := range stack.Members {

if !member.External {
compose.Services["firefly_core_"+member.ID] = &Service{
Image: "ghcr.io/hyperledger/firefly:latest",
Image: "ghcr.io/hyperledger/firefly:latest",
ContainerName: fmt.Sprintf("%s_firefly_core_%v", stack.Name, i),
Ports: []string{
fmt.Sprintf("%d:%d", member.ExposedFireflyPort, member.ExposedFireflyPort),
fmt.Sprintf("%d:%d", member.ExposedFireflyAdminPort, member.ExposedFireflyAdminPort),
Expand All @@ -96,8 +98,9 @@ func CreateDockerCompose(stack *types.Stack) *DockerComposeConfig {

if stack.Database == "postgres" {
compose.Services["postgres_"+member.ID] = &Service{
Image: "postgres",
Ports: []string{fmt.Sprintf("%d:5432", member.ExposedPostgresPort)},
Image: "postgres",
ContainerName: fmt.Sprintf("%s_postgres_%v", stack.Name, i),
Ports: []string{fmt.Sprintf("%d:5432", member.ExposedPostgresPort)},
Environment: map[string]string{
"POSTGRES_PASSWORD": "f1refly",
"PGDATA": "/var/lib/postgresql/data/pgdata",
Expand All @@ -120,7 +123,8 @@ func CreateDockerCompose(stack *types.Stack) *DockerComposeConfig {
}

compose.Services["ipfs_"+member.ID] = &Service{
Image: "ipfs/go-ipfs",
Image: "ipfs/go-ipfs",
ContainerName: fmt.Sprintf("%s_ipfs_%v", stack.Name, i),
Ports: []string{
fmt.Sprintf("%d:5001", member.ExposedIPFSApiPort),
fmt.Sprintf("%d:8080", member.ExposedIPFSGWPort),
Expand All @@ -140,10 +144,11 @@ func CreateDockerCompose(stack *types.Stack) *DockerComposeConfig {
compose.Volumes["ipfs_data_"+member.ID] = struct{}{}

compose.Services["dataexchange_"+member.ID] = &Service{
Image: "ghcr.io/hyperledger/firefly-dataexchange-https:latest",
Ports: []string{fmt.Sprintf("%d:3000", member.ExposedDataexchangePort)},
Volumes: []string{fmt.Sprintf("dataexchange_%s:/data", member.ID)},
Logging: StandardLogOptions,
Image: "ghcr.io/hyperledger/firefly-dataexchange-https:latest",
ContainerName: fmt.Sprintf("%s_dataexchange_%v", stack.Name, i),
Ports: []string{fmt.Sprintf("%d:3000", member.ExposedDataexchangePort)},
Volumes: []string{fmt.Sprintf("dataexchange_%s:/data", member.ID)},
Logging: StandardLogOptions,
}

compose.Volumes["dataexchange_"+member.ID] = struct{}{}
Expand Down
7 changes: 4 additions & 3 deletions internal/tokens/erc1155/erc1155_provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,12 +49,13 @@ func (p *ERC1155Provider) FirstTimeSetup() error {

func (p *ERC1155Provider) GetDockerServiceDefinitions() []*docker.ServiceDefinition {
serviceDefinitions := make([]*docker.ServiceDefinition, 0, len(p.Stack.Members))
for _, member := range p.Stack.Members {
for i, member := range p.Stack.Members {
serviceDefinitions = append(serviceDefinitions, &docker.ServiceDefinition{
ServiceName: "tokens_" + member.ID,
Service: &docker.Service{
Image: "ghcr.io/hyperledger/firefly-tokens-erc1155:latest",
Ports: []string{fmt.Sprintf("%d:3000", member.ExposedTokensPort)},
Image: "ghcr.io/hyperledger/firefly-tokens-erc1155:latest",
ContainerName: fmt.Sprintf("%s_tokens_%v", p.Stack.Name, i),
Ports: []string{fmt.Sprintf("%d:3000", member.ExposedTokensPort)},
Environment: map[string]string{
"ETHCONNECT_URL": p.getEthconnectURL(member),
"ETHCONNECT_INSTANCE": "/contracts/erc1155",
Expand Down

0 comments on commit 897aa1c

Please sign in to comment.