tima_t
December 17, 2019, 6:13pm
1
I have followed the official guide from this repo in order to setup own aeternal: GitHub - aeternity/aeternal: Æterrnal--the caching and reporting layer for the æternity blockchain
Then docker setup guide:
Install Docker and Docker Compose.
Update docker/aeternity.yaml
as per your requirement.
Copy .env.example
to .env
and if required, edit the node and compiler version.
From the project root run, run docker-compose up
Everything is up and running (frontend and endpoints are showing, ) but, this error is showing all the time:
middleware_1 | 2019-12-17T18:09:03.816265691+00:00 ERROR aeternal::models - Error loading key block: NotFound
middleware_1 | 2019-12-17T18:09:03.816288431+00:00 ERROR aeternal::loader - Couldn’t load generation -1 from DB
Height is always 0 and it looks like some db error.
My OS is ubuntu server.
Do you have any idea?
(Off-topic but on Fedora and CentOs docker-compose is not working properly- it is a known problem about docker-compose, but some users can have troubles with that )
1 Like
tima_t
December 18, 2019, 12:42pm
2
Someone familiar with the docker?
Hello @tima_t , as @jsnewby didn’t get around to look at this, I tried it out and was able to replicate and fix the issue you were having.
There are 2 issues:
The .env.example contains very outdated versions for node and compiler that are not compatible with the current sync protocol
The provided aeternity.yaml configuration specifies peers: []
preventing sync with the network
I created a pull request for the aeternal team that should fix those issues of the provided setup here: fixed provided docker-compose configuration by thepiwo · Pull Request #252 · aeternity/aeternal · GitHub
Let me know if there are any further questions.
1 Like
tima_t
December 20, 2019, 12:23pm
5
Thanks @philipp.chain I will try it and write back!
I have an update as well - it looks like the official branch is develop or tag v0.12.1 - maybe we should write it in the docs in order to keep everything up-to date for the other developers.
After the help of @jsnewby I succeed to run the docker using @jsnewby node.
You can see my docker-compose.yml:
version: ‘3.1’
services:
middleware:
build:
context: .
dockerfile: ./docker/Dockerfile
ports:
- “8080:80”
- “3020:3020”
entrypoint: ./docker/wait-for-it.sh node:3013 – ./aeternal -p -s -w
environment:
- NODE_URL=http://aeternal.io:4013
- AESOPHIA_URL=https://testnet.aeternal.io/middleware/contracts/calls/address/ct_2M9XPMwz1GggFRPatEd2aAPZbig32ZqRJBnhTT2yRVM4k6CQnb
- DATABASE_URL=postgres://middleware:middleware@db/middleware
- LOG_CONF=/logs/log.yaml
volumes:
- ${PWD}/docker/wait-for-it.sh:/app/docker/wait-for-it.sh
depends_on:
- db
- node
- compiler
frontend:
build:
context: ./frontend/
dockerfile: nginx.Dockerfile
args:
- NODE_URL=http://165.22.199.163:8080
- NODE_WS=http://165.22.199.163:3020
- NETWORK_NAME=‘TEST NET’
ports:
- “8081:80”
depends_on:
- middleware
node:
image: aeternity/aeternity:{NODE_TAG}
hostname: node
expose: [3013, 3113, 3014]
environment:
AETERNITY_CONFIG: /home/aeterinty/aeternity.yaml
volumes:
- {PWD}/docker/aeternity.yaml:/home/aeterinty/aeternity.yaml
- node_db:/home/aeterinty/node/data/mnesia
db:
image: postgres:11
restart: unless-stopped
environment:
- POSTGRES_USER=middleware
- POSTGRES_PASSWORD=middleware
- POSTGRES_DB=middleware
volumes:
- ae-mdw-postgres-volume:/var/lib/postgresql/data
expose: [5432]
compiler:
image: aeternity/aesophia_http:${COMPILER_TAG}
hostname: compiler
expose: [3080]
volumes:
ae-mdw-postgres-volume:
external: false
node_db:
Could be useful tho.
hello, we just got an updated docker example on the develop branch that hopefully clarifies things:
1 Like
tima_t
December 20, 2019, 6:06pm
7
I have tried it - works great.
I have one more question when I go in examples and run the docker-compose up it starts on the mainnet.
I guess that this is config in aeternity folder.
When I uncomment this line:
#fork_management:
#network_id: “ae_uat”
It should start syncing the test net right?
I tried but it does not work on the testnet.
it works fine with these lines commented and syncs the mainnet.
yes, if you set in the node/config.yaml
file the lines
fork_management:
network_id: "ae_uat"
the node will sync to testnet, but before doing so you need to remove the existing database, otherwise the node will not be able to sync since it is already partially synced with mainnet.
To do so you can, from the examples
folder , run the command:
docker-compose down -v
that will delete everything in the example context.
whats your issue here @hasan.chain ?
Hello @philipp.chain
I installed docker-compose with pip. but I can’t get results with docker --version command.
Pip version :
Generally I don’t think it is possible to install docker via pip, just refer to the official docker documentation.
1 Like
Yes you are right. again gave docker error when connected to node