github.com/mysteriumnetwork/node@v0.0.0-20240516044423-365054f76801/docker-compose.e2e-basic.yml (about)

     1  version: '3.0'
     2  services:
     3    echo:
     4      image: mysteriumnetwork/assymmetric-udp-echo:latest
     5      expose:
     6        - 4589
     7  
     8    morqa:
     9      image: mysteriumnetwork/quality-oracle:latest
    10      command: >
    11        --bind-addr=:8085
    12        --prometheus=http://prometheus:9090
    13        --metrics-addr=:8080
    14      depends_on:
    15        - prometheus
    16      expose:
    17        - 8085
    18        - 8080
    19  
    20    prometheus:
    21      image: prom/prometheus:v2.10.0
    22      volumes:
    23        - ./e2e/prometheus:/prometheus
    24      command:
    25        - '--config.file=/prometheus/config.yml'
    26        - '--storage.tsdb.path=data/'
    27      expose:
    28        - 9090
    29  
    30    ipify:
    31      image: mysteriumnetwork/ipify:1.0.1
    32      expose:
    33        - 3000
    34  
    35    broker-real:
    36      image: nats:1.0.4
    37      expose:
    38        - 4222
    39  
    40    broker:
    41      image: mysteriumnetwork/nats-proxy:1.0.1
    42      depends_on:
    43        - broker-real
    44      command:
    45        - '-target=broker-real:4222'
    46      expose:
    47        - 4222
    48  
    49    db:
    50      image: postgres:13-alpine
    51      container_name: discovery_db
    52      ports:
    53        - 5432:5432
    54      environment:
    55        - POSTGRES_USER=discovery
    56        - POSTGRES_DB=discovery
    57        - POSTGRES_PASSWORD=discovery
    58      healthcheck:
    59        test: ["CMD-SHELL", "pg_isready -U postgres"]
    60        interval: 10s
    61        timeout: 5s
    62        retries: 5
    63  
    64    discovery-service:
    65      image: mysteriumnetwork/discovery:2.18.3
    66      expose:
    67        - 8081
    68      environment:
    69        - PORT=8081
    70        - DB_DSN=postgresql://discovery:discovery@db:5432/discovery
    71        - QUALITY_ORACLE_URL=http://morqa:8085
    72        - BROKER_URL=broker
    73        - UNIVERSE_JWT_SECRET=suchsecret
    74        - REDIS_ADDRESS=redis:6379
    75        - BADGER_ADDRESS=http://badger:1234
    76        - QUALITY_CACHE_TTL=20m
    77        - LOCATION_ADDRESS="badurl"
    78      depends_on:
    79        - db
    80        - redis
    81        - http-mock
    82  
    83    discovery:
    84      image: nginx:latest
    85      expose:
    86        - 8080
    87      volumes:
    88        - ./e2e/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
    89      depends_on:
    90        - discovery-service
    91        - discovery-pricer
    92  
    93    discovery-pricer:
    94      image: mysteriumnetwork/discovery-pricer:2.18.3
    95      expose:
    96        - 8091
    97      environment:
    98        - PORT=8091
    99        - DB_DSN=postgresql://discovery:discovery@db:5432/discovery
   100        - QUALITY_ORACLE_URL=http://morqa:8085
   101        - BROKER_URL=broker
   102        - UNIVERSE_JWT_SECRET=suchsecret
   103        - REDIS_ADDRESS=redis:6379
   104        - BADGER_ADDRESS=http://badger:1234
   105        - QUALITY_CACHE_TTL=20m
   106        - LOCATION_ADDRESS="badurl"
   107        - SENTINEL_URL="https://sentinel.mysterium.network"
   108      depends_on:
   109        - db
   110        - redis
   111        - http-mock
   112  
   113    #private blockchain
   114    ganache:
   115      image: trufflesuite/ganache:v7.3.2
   116      expose:
   117        - 8545
   118      command: >
   119        --chain.chainId 5 --chain.networkId 5 --wallet.mnemonic "amused glory pen avocado toilet dragon entry kitchen cliff retreat canyon danger"
   120  
   121    #private blockchain
   122    ganache2:
   123      image: trufflesuite/ganache:v7.3.2
   124      expose:
   125        - 8545
   126      command: >
   127        --chain.chainId 80001 --chain.networkId 80001 --wallet.mnemonic "amused glory pen avocado toilet dragon entry kitchen cliff retreat canyon danger"
   128  
   129    trust:
   130      image: mysteriumnetwork/trust-oracle:latest
   131      command: >
   132        -swaggerHost=trust
   133        -fallbackTrustedIDs=0xc4cb9a91b8498776f6f8a0d5a2a23beec9b3cef3
   134  
   135    http-mock:
   136      image: mockserver/mockserver:mockserver-5.15.0
   137      ports:
   138        - 9999:1080
   139  
   140    transactordatabase:
   141      image: postgres:13-alpine
   142      expose:
   143        - 5432
   144      environment:
   145        - POSTGRES_USER=transactor
   146        - POSTGRES_DB=transactor
   147        - POSTGRES_PASSWORD=transactor
   148      healthcheck:
   149        test: ["CMD-SHELL", "pg_isready -U postgres"]
   150        interval: 10s
   151        timeout: 5s
   152        retries: 5
   153  
   154    transactor-sidecar:
   155      image: mysteriumnetwork/transactor-sidecar:3.0.10
   156      depends_on:
   157        - transactordatabase
   158        - redis
   159        - http-mock
   160      command: >
   161        /usr/bin/sidecar
   162        -configPaths=/transactor/sidecar_config.yaml
   163      volumes:
   164        - ./e2e/transactor:/transactor
   165  
   166    transactor:
   167      image: mysteriumnetwork/transactor:3.0.10
   168      environment:
   169        PORT: 8888
   170      expose:
   171        - 8888
   172      depends_on:
   173        - ganache
   174        - ganache2
   175        - transactordatabase
   176        - redis
   177        - http-mock
   178        - transactor-sidecar
   179      command: >
   180        -configPaths=/transactor/config.yaml
   181      volumes:
   182        - ./e2e/blockchain/keystore:/keystore
   183        - ./e2e/transactor:/transactor
   184  
   185    redis:
   186      image: bitnami/redis:6.2.14
   187      container_name: 'hermes_redis'
   188      expose:
   189        - 6379
   190      environment:
   191        - ALLOW_EMPTY_PASSWORD=yes
   192  
   193    mongodb:
   194      image: 'mongo:4.2.3'
   195      container_name: 'hermes_mongo'
   196      environment:
   197        - MONGO_INITDB_ROOT_PASSWORD=root
   198        - MONGO_INITDB_ROOT_USERNAME=root
   199        - MONGO_INITDB_DATABASE=admin
   200        - MONGO_NON_ROOT_USERNAME=hermes
   201        - MONGO_NON_ROOT_PASSWORD=hermes
   202        - MONGO_REPLICA_SET_NAME=rs0
   203      expose:
   204        - 27017
   205        - 27018
   206        - 27019
   207      volumes:
   208        - ./e2e/mongo-init.e2e.js:/docker-entrypoint-initdb.d/mongo-init.js:ro
   209      command: ["mongod", "--replSet", "rs0"]
   210      healthcheck:
   211          test: 'test $$(echo "rs.initiate({_id: \"rs0\",version: 1,members: [{ _id: 0, host : \"mongodb:27017\" }]}).ok || rs.status().ok" | mongo -u root -p root --quiet) -eq 1'
   212          interval: 5s
   213          start_period: 5s
   214  
   215    hermes:
   216      image: mysteriumnetwork/hermes:2.3.17
   217      environment:
   218        PORT: 8889
   219        LOG_LEVEL: trace
   220      expose:
   221        - 8889
   222      depends_on:
   223        - ganache
   224        - redis
   225        - mongodb
   226        - ganache2
   227        - transactor
   228        - pilvytis-mock
   229      command: >
   230        -identityPassphrase ""
   231        -Chain1Myst 0xaa9c4e723609cb913430143fbc86d3cbe7adca21
   232        -Chain1RPCEndpoint http://ganache:8545
   233        -transactorBaseUri "http://transactor:8888/api/v1/"
   234        -Chain1ChainID 5
   235        -Chain1chImplementation 0x599d43715df3070f83355d9d90ae62c159e62a75
   236        -Chain1Registry 0x427c2bad22335710aec5e477f3e3adcd313a9bcb
   237        -Chain1HermesAddress 0x241f6e1d0bb17f45767dc60a6bd3d21cdb543a0c
   238        -Chain2Myst 0xaa9c4e723609cb913430143fbc86d3cbe7adca21
   239        -Chain2RPCEndpoint ws://ganache2:8545
   240        -Chain2ChainID 80001
   241        -Chain2chImplementation 0x599d43715df3070f83355d9d90ae62c159e62a75
   242        -Chain2Registry 0x427c2bad22335710aec5e477f3e3adcd313a9bcb
   243        -Chain2HermesAddress 0x241f6e1d0bb17f45767dc60a6bd3d21cdb543a0c
   244        -operator 0x354bd098b4ef8c9e70b7f21be2d455df559705d7
   245        -keystoreDir /keystore
   246        -bcDataRefreshInterval 1ns
   247        -MongoUser hermes
   248        -MongoPass hermes
   249        -MongoReplSet rs0
   250        -MongoHost "mongodb:27017"
   251        -MongoDatabase hermes
   252        -MongoReplSet ""
   253        -redisAddress "redis:6379"
   254        -bindAddr="0.0.0.0:8889"
   255        -pilvytisBaseURL http://pilvytis-mock:8080
   256      volumes:
   257        - ./e2e/blockchain/keystore:/keystore
   258  
   259    pilvytis-mock:
   260      image: wiremock/wiremock:2.32.0
   261      expose:
   262        - 8080
   263      volumes:
   264        - ./e2e/pilvytis:/home/wiremock
   265  
   266    hermes2:
   267      image: mysteriumnetwork/hermes:3.3.15
   268      environment:
   269        LOG_LEVEL: trace
   270      expose:
   271        - 8889
   272      depends_on:
   273        - ganache
   274        - ganache2
   275        - redis
   276        - transactor
   277      command: >
   278        -configPaths=/hermes/config.yaml
   279      volumes:
   280        - ./e2e/blockchain/keystore:/keystore
   281        - ./e2e/hermes:/hermes
   282  
   283    myst-provider:
   284      build:
   285        context: .
   286        dockerfile: ./bin/docker/alpine-prebuilt/Dockerfile
   287      depends_on:
   288        - broker
   289        - discovery
   290        - ipify
   291        - transactor
   292        - hermes
   293        - hermes2
   294        - morqa
   295        - trust
   296      cap_add:
   297        - NET_ADMIN
   298      devices:
   299        - /dev/net/tun
   300      expose:
   301        - 1194
   302        - 4050
   303      volumes:
   304        - ./e2e/myst-provider/keystore:/var/lib/mysterium-node/keystore
   305      command: >
   306        --discovery.ping=1s
   307        --discovery.fetch=1s
   308        --chains.1.myst=0xaa9c4e723609cb913430143fbc86d3cbe7adca21
   309        --chains.1.registry=0x427c2bad22335710aec5e477f3e3adcd313a9bcb
   310        --chains.1.chainID=5
   311        --chains.1.channelImplementation=0x599d43715df3070f83355d9d90ae62c159e62a75
   312        --chains.1.hermes=0xd68defb97d0765741f8ecf179df2f9564e1466a3
   313        --chains.1.knownHermeses=0xd68defb97d0765741f8ecf179df2f9564e1466a3
   314        --chains.1.knownHermeses=0xfd63dc49c7163d82d6f0a4c23ff13216d702ce50
   315        --chains.2.myst=0xaa9c4e723609cb913430143fbc86d3cbe7adca21
   316        --chains.2.registry=0x427c2bad22335710aec5e477f3e3adcd313a9bcb
   317        --chains.2.channelImplementation=0x599d43715df3070f83355d9d90ae62c159e62a75
   318        --chains.2.hermes=0xd68defb97d0765741f8ecf179df2f9564e1466a3
   319        --chains.2.knownHermeses=0xd68defb97d0765741f8ecf179df2f9564e1466a3
   320        --chains.2.knownHermeses=0xfd63dc49c7163d82d6f0a4c23ff13216d702ce50
   321        --chains.2.chainID=80001
   322        --chain-id=80001
   323        --ether.client.rpcl2=ws://ganache2:8545
   324        --ether.client.rpcl1=http://ganache:8545
   325        --ip-detector=http://ipify:3000/?format=json
   326        --location.type=manual
   327        --location.country=e2e-land
   328        --firewall.protected.networks=""
   329        --broker-address=broker
   330        --tequilapi.address=0.0.0.0
   331        --tequilapi.allowed-hostnames=.
   332        --discovery.address=http://discovery:8080/api/v4
   333        --transactor.address=http://transactor:8888/api/v1
   334        --keystore.lightweight
   335        --log-level=debug
   336        --quality.address=http://morqa:8085/api/v3
   337        --payments.provider.invoice-frequency=1s
   338        --access-policy.address=http://trust:8080/api/v1/access-policies/
   339        --access-policy.fetch=1s
   340        --stun-servers=""
   341        --local-service-discovery=true
   342        --payments.hermes.settle.check-interval=1s
   343        --payments.registry-transactor-poll.interval=1s
   344        --observer.address=""
   345        service
   346        --agreed-terms-and-conditions
   347        --identity=0xd1a23227bd5ad77f36ba62badcb78a410a1db6c5
   348        --identity.passphrase=localprovider
   349        --openvpn.port=3000
   350        --active-services=openvpn,noop,wireguard
   351  
   352    myst-consumer-noop:
   353      build:
   354        context: .
   355        dockerfile: ./bin/docker/alpine-prebuilt/Dockerfile
   356      volumes:
   357        - ./e2e/myst-consumer/keystore/remember.json:/var/lib/mysterium-node/keystore/remember.json
   358        - ./e2e/myst-consumer/keystore/UTC--2020-07-31T02-37-15.148642000Z--c4cb9a91b8498776f6f8a0d5a2a23beec9b3cef3:/var/lib/mysterium-node/keystore/UTC--2020-07-31T02-37-15.148642000Z--c4cb9a91b8498776f6f8a0d5a2a23beec9b3cef3
   359      sysctls:
   360        - net.ipv6.conf.all.disable_ipv6=0
   361      depends_on:
   362        - broker
   363        - discovery
   364        - ipify
   365        - transactor
   366        - hermes
   367        - myst-provider
   368        - morqa
   369      cap_add:
   370        - NET_ADMIN
   371      expose:
   372        - 4050
   373      command: >
   374        --discovery.ping=1s
   375        --discovery.fetch=1s
   376        --discovery.type api --discovery.type broker
   377        --chains.1.myst=0xaa9c4e723609cb913430143fbc86d3cbe7adca21
   378        --chains.1.registry=0x427c2bad22335710aec5e477f3e3adcd313a9bcb
   379        --chains.1.hermes=0xd68defb97d0765741f8ecf179df2f9564e1466a3
   380        --chains.1.knownHermeses=0xd68defb97d0765741f8ecf179df2f9564e1466a3
   381        --chains.1.knownHermeses=0xfd63dc49c7163d82d6f0a4c23ff13216d702ce50
   382        --transactor.address=http://transactor:8888/api/v1
   383        --chains.1.channelImplementation=0x599d43715df3070f83355d9d90ae62c159e62a75
   384        --chains.2.myst=0xaa9c4e723609cb913430143fbc86d3cbe7adca21
   385        --chains.2.registry=0x427c2bad22335710aec5e477f3e3adcd313a9bcb
   386        --chains.2.channelImplementation=0x599d43715df3070f83355d9d90ae62c159e62a75
   387        --chains.2.hermes=0xd68defb97d0765741f8ecf179df2f9564e1466a3
   388        --chains.2.knownHermeses=0xd68defb97d0765741f8ecf179df2f9564e1466a3
   389        --chains.2.knownHermeses=0xfd63dc49c7163d82d6f0a4c23ff13216d702ce50
   390        --chains.2.chainID=80001
   391        --chain-id=80001
   392        --ip-detector=http://ipify:3000/?format=json
   393        --location.type=manual
   394        --log-level=debug
   395        --broker-address=broker
   396        --tequilapi.address=0.0.0.0
   397        --tequilapi.allowed-hostnames=.
   398        --discovery.address=http://discovery:8080/api/v4
   399        --ether.client.rpcl2=ws://ganache2:8545
   400        --ether.client.rpcl1=http://ganache:8545
   401        --keystore.lightweight
   402        --firewall.killSwitch.always
   403        --quality.address=http://morqa:8085/api/v3
   404        --stun-servers=""
   405        --local-service-discovery=true
   406        --payments.registry-transactor-poll.interval=1s
   407        --port-check-servers="echo:4589"
   408        --observer.address=""
   409        daemon
   410  
   411    myst-consumer-hermes2:
   412      build:
   413        context: .
   414        dockerfile: ./bin/docker/alpine-prebuilt/Dockerfile
   415      sysctls:
   416        - net.ipv6.conf.all.disable_ipv6=0
   417      depends_on:
   418        - broker
   419        - discovery
   420        - ipify
   421        - transactor
   422        - hermes2
   423        - myst-provider
   424        - morqa
   425      cap_add:
   426        - NET_ADMIN
   427      devices:
   428        - /dev/net/tun
   429      command: >
   430        --discovery.ping=1s
   431        --discovery.fetch=1s
   432        --chains.1.myst=0xaa9c4e723609cb913430143fbc86d3cbe7adca21
   433        --chains.1.registry=0x427c2bad22335710aec5e477f3e3adcd313a9bcb
   434        --chains.1.hermes=0xfd63dc49c7163d82d6f0a4c23ff13216d702ce50
   435        --chains.1.knownHermeses=0xd68defb97d0765741f8ecf179df2f9564e1466a3,0xfd63dc49c7163d82d6f0a4c23ff13216d702ce50
   436        --transactor.address=http://transactor:8888/api/v1
   437        --chains.1.channelImplementation=0x599d43715df3070f83355d9d90ae62c159e62a75
   438        --chains.2.myst=0xaa9c4e723609cb913430143fbc86d3cbe7adca21
   439        --chains.2.registry=0x427c2bad22335710aec5e477f3e3adcd313a9bcb
   440        --chains.2.channelImplementation=0x599d43715df3070f83355d9d90ae62c159e62a75
   441        --chains.2.hermes=0xfd63dc49c7163d82d6f0a4c23ff13216d702ce50
   442        --chains.2.knownHermeses=0xd68defb97d0765741f8ecf179df2f9564e1466a3,0xfd63dc49c7163d82d6f0a4c23ff13216d702ce50
   443        --chains.2.chainID=80001
   444        --chain-id=80001
   445        --ip-detector=http://ipify:3000/?format=json
   446        --location.type=manual
   447        --log-level=debug
   448        --broker-address=broker
   449        --tequilapi.address=0.0.0.0
   450        --tequilapi.allowed-hostnames=.
   451        --discovery.address=http://discovery:8080/api/v4
   452        --ether.client.rpcl2=ws://ganache2:8545
   453        --ether.client.rpcl1=http://ganache:8545
   454        --keystore.lightweight
   455        --firewall.killSwitch.always
   456        --quality.address=http://morqa:8085/api/v3
   457        --stun-servers=""
   458        --local-service-discovery=true
   459        --payments.registry-transactor-poll.interval=1s
   460        --port-check-servers="echo:4589"
   461        --observer.address=""
   462        daemon
   463  
   464    myst-consumer-openvpn:
   465      build:
   466        context: .
   467        dockerfile: ./bin/docker/alpine-prebuilt/Dockerfile
   468      sysctls:
   469        - net.ipv6.conf.all.disable_ipv6=0
   470      depends_on:
   471        - broker
   472        - discovery
   473        - ipify
   474        - transactor
   475        - hermes
   476        - myst-provider
   477        - morqa
   478      cap_add:
   479        - NET_ADMIN
   480      devices:
   481        - /dev/net/tun
   482      command: >
   483        --discovery.ping=1s
   484        --discovery.fetch=1s
   485        --chains.1.myst=0xaa9c4e723609cb913430143fbc86d3cbe7adca21
   486        --chains.1.registry=0x427c2bad22335710aec5e477f3e3adcd313a9bcb
   487        --chains.1.hermes=0xd68defb97d0765741f8ecf179df2f9564e1466a3
   488        --chains.1.knownHermeses=0xd68defb97d0765741f8ecf179df2f9564e1466a3
   489        --chains.1.knownHermeses=0xfd63dc49c7163d82d6f0a4c23ff13216d702ce50
   490        --transactor.address=http://transactor:8888/api/v1
   491        --chains.1.channelImplementation=0x599d43715df3070f83355d9d90ae62c159e62a75
   492        --chains.2.myst=0xaa9c4e723609cb913430143fbc86d3cbe7adca21
   493        --chains.2.registry=0x427c2bad22335710aec5e477f3e3adcd313a9bcb
   494        --chains.2.channelImplementation=0x599d43715df3070f83355d9d90ae62c159e62a75
   495        --chains.2.hermes=0xd68defb97d0765741f8ecf179df2f9564e1466a3
   496        --chains.2.knownHermeses=0xd68defb97d0765741f8ecf179df2f9564e1466a3
   497        --chains.2.knownHermeses=0xfd63dc49c7163d82d6f0a4c23ff13216d702ce50
   498        --chains.2.chainID=80001
   499        --chain-id=80001
   500        --ip-detector=http://ipify:3000/?format=json
   501        --location.type=manual
   502        --log-level=debug
   503        --broker-address=broker
   504        --tequilapi.address=0.0.0.0
   505        --tequilapi.allowed-hostnames=.
   506        --discovery.address=http://discovery:8080/api/v4
   507        --ether.client.rpcl2=ws://ganache2:8545
   508        --ether.client.rpcl1=http://ganache:8545
   509        --keystore.lightweight
   510        --firewall.killSwitch.always
   511        --quality.address=http://morqa:8085/api/v3
   512        --stun-servers=""
   513        --local-service-discovery=true
   514        --payments.registry-transactor-poll.interval=1s
   515        --port-check-servers="echo:4589"
   516        --observer.address=""
   517        daemon
   518  
   519    myst-consumer-wireguard:
   520      build:
   521        context: .
   522        dockerfile: ./bin/docker/alpine-prebuilt/Dockerfile
   523      depends_on:
   524        - broker
   525        - discovery
   526        - ipify
   527        - transactor
   528        - hermes
   529        - myst-provider
   530        - morqa
   531      cap_add:
   532        - NET_ADMIN
   533      devices:
   534        - /dev/net/tun
   535      sysctls:
   536        - net.ipv6.conf.all.disable_ipv6=0
   537      command: >
   538        --discovery.ping=1s
   539        --discovery.fetch=1s
   540        --chains.1.myst=0xaa9c4e723609cb913430143fbc86d3cbe7adca21
   541        --chains.1.registry=0x427c2bad22335710aec5e477f3e3adcd313a9bcb
   542        --chains.1.hermes=0xd68defb97d0765741f8ecf179df2f9564e1466a3
   543        --transactor.address=http://transactor:8888/api/v1
   544        --chains.1.channelImplementation=0x599d43715df3070f83355d9d90ae62c159e62a75
   545        --chains.1.knownHermeses=0xd68defb97d0765741f8ecf179df2f9564e1466a3
   546        --chains.1.knownHermeses=0xfd63dc49c7163d82d6f0a4c23ff13216d702ce50
   547        --chains.2.myst=0xaa9c4e723609cb913430143fbc86d3cbe7adca21
   548        --chains.2.registry=0x427c2bad22335710aec5e477f3e3adcd313a9bcb
   549        --chains.2.channelImplementation=0x599d43715df3070f83355d9d90ae62c159e62a75
   550        --chains.2.hermes=0xd68defb97d0765741f8ecf179df2f9564e1466a3
   551        --chains.2.knownHermeses=0xd68defb97d0765741f8ecf179df2f9564e1466a3
   552        --chains.2.knownHermeses=0xfd63dc49c7163d82d6f0a4c23ff13216d702ce50
   553        --chains.2.chainID=80001
   554        --chain-id=80001
   555        --ip-detector=http://ipify:3000/?format=json
   556        --location.type=manual
   557        --log-level=debug
   558        --broker-address=broker
   559        --tequilapi.address=0.0.0.0
   560        --tequilapi.allowed-hostnames=.
   561        --discovery.address=http://discovery:8080/api/v4
   562        --ether.client.rpcl2=ws://ganache2:8545
   563        --ether.client.rpcl1=http://ganache:8545
   564        --keystore.lightweight
   565        --firewall.killSwitch.always
   566        --quality.address=http://morqa:8085/api/v3
   567        --stun-servers=""
   568        --local-service-discovery=true
   569        --payments.registry-transactor-poll.interval=1s
   570        --port-check-servers="echo:4589"
   571        --observer.address=""
   572        daemon
   573  
   574    #go runner to run go programs inside localnet (usefull for contract deployment or e2e test running)
   575    go-runner:
   576      build:
   577        context: .
   578        dockerfile: ./e2e/gorunner/Dockerfile.precompiled
   579      cap_add:
   580        - NET_ADMIN
   581      volumes:
   582        - ./e2e/blockchain/keystore:/node/keystore
   583      working_dir: /node