Browse Source

fix: copy shared package in docker images

develop
Apostolos Fanakis 4 years ago
parent
commit
cd5bd0cd94
  1. 1
      .gitignore
  2. 38
      docker/Makefile
  3. 6
      docker/concordia-app/Dockerfile
  4. 4
      docker/concordia-contracts-provider/Dockerfile
  5. 4
      docker/concordia-contracts/Dockerfile
  6. 2
      docker/concordia-contracts/migrate.sh
  7. 2
      docker/concordia-pinner/Dockerfile
  8. 7
      docker/docker-compose.yml
  9. 1
      docker/env/concordia.env
  10. 7
      docker/env/contracts.env
  11. 7
      docker/env/pinner.env

1
.gitignore

@ -23,6 +23,7 @@ yarn-error.log*
docker/volumes docker/volumes
docker/ganache/volumes docker/ganache/volumes
docker/concordia-contracts-provider/volumes docker/concordia-contracts-provider/volumes
docker/concordia-pinner/volumes
docker/reports docker/reports
# Misc # Misc

38
docker/Makefile

@ -4,11 +4,11 @@ REPORTS := $(abspath ${CURDIR}/reports)
GANACHE_VOLUMES := $(abspath ${CURDIR}/ganache/volumes) GANACHE_VOLUMES := $(abspath ${CURDIR}/ganache/volumes)
CONTRACTS_PROVIDER_VOLUMES := $(abspath ${CURDIR}/concordia-contracts-provider/volumes) CONTRACTS_PROVIDER_VOLUMES := $(abspath ${CURDIR}/concordia-contracts-provider/volumes)
DOCKER_BUILDKIT = 1 DOCKER_BUILDKIT = 1
PINNER_VOLUMES := $(abspath ${CURDIR}/pinner/volumes) PINNER_VOLUMES := $(abspath ${CURDIR}/concordia-pinner/volumes)
run: compose-run build-contracts-migrate run-contracts-migrate build-app run-app run: compose-run build-contracts-provider run-contracts-provider build-contracts-migrate run-contracts-migrate build-pinner run-pinner build-app run-app
@echo "Concordia is up and running, head over to http://localhost:7777." @echo "Concordia is up and running, head over to http://localhost:7777."
run-staging: compose-run build-contracts-migrate run-contracts-migrate build-app-staging run-app-staging run-staging: compose-run build-contracts-provider run-contracts-provider-staging build-contracts-migrate run-contracts-migrate build-pinner run-pinner-staging build-app-staging run-app-staging
@echo "Concordia is up and running, head over to http://localhost:7000." @echo "Concordia is up and running, head over to http://localhost:7000."
# Targets for building/running/stopping the blockchain and rendezvous server (using the docker-compose file) # Targets for building/running/stopping the blockchain and rendezvous server (using the docker-compose file)
@ -25,16 +25,14 @@ compose-stop-clean-data:
build-ganache: build-ganache:
@docker build ../ -f ./ganache/Dockerfile -t ecentrics/concordia-ganache @docker build ../ -f ./ganache/Dockerfile -t ecentrics/concordia-ganache
run-ganache: run-ganache:
@docker network create --driver bridge concordia_ganache_network || true &&\ @docker run -d -v ${GANACHE_VOLUMES}/ganache_keys:/home/ganache_keys -p 8545:8545 --env-file=./env/ganache.env --name concordia-ganache --net=concordia_concordia_network ecentrics/concordia-ganache:latest
docker run -d -v ${GANACHE_VOLUMES}/ganache_keys:/home/ganache_keys -p 8545:8545 --env-file=./env/ganache.env --name concordia-ganache --net=concordia_ganache_network ecentrics/concordia-ganache:latest
run-ganache-test: run-ganache-test:
@docker network create --driver bridge concordia_ganache_test_network || true &&\ @docker run --rm -d -p 8546:8546 --env-file=./env/ganache.test.env --name concordia-ganache-test --net=concordia_concordia_network ecentrics/concordia-ganache:latest
docker run --rm -d -p 8546:8546 --env-file=./env/ganache.test.env --name concordia-ganache-test --net=concordia_ganache_test_network ecentrics/concordia-ganache:latest
# Rendezvous targets # Rendezvous targets
run-rendezvous: run-rendezvous:
@docker network create --driver bridge concordia_rendezvous_network || true &&\ @docker network create --driver bridge concordia_concordia_network || true &&\
docker run -d -p 9090:9090 --name concordia-rendezvous libp2p/js-libp2p-webrtc-star:version-0.20.5 docker run -d -p 9090:9090 --name concordia-rendezvous --net=concordia_concordia_network libp2p/js-libp2p-webrtc-star:version-0.20.5
# Contracts targets # Contracts targets
build-contracts: build-contracts:
@ -44,11 +42,11 @@ build-contracts-migrate:
build-contracts-tests: build-contracts-tests:
@docker build ../ -f ./concordia-contracts/Dockerfile --target test -t ecentrics/concordia-contracts-tests --build-arg TZ=Europe/Athens @docker build ../ -f ./concordia-contracts/Dockerfile --target test -t ecentrics/concordia-contracts-tests --build-arg TZ=Europe/Athens
run-contracts-tests: run-contracts-tests:
@docker run --rm -v ${REPORTS}/contracts/:/usr/test-reports/ --env-file=./env/contracts.env --net=concordia_ganache_test_network ecentrics/concordia-contracts-tests:latest @docker run --rm -v ${REPORTS}/contracts/:/usr/test-reports/ --env-file=./env/contracts.env --net=concordia_concordia_network ecentrics/concordia-contracts-tests:latest
run-contracts-tests-host-chain: run-contracts-tests-host-chain:
@docker run --rm -v ${REPORTS}/contracts/:/usr/test-reports/ --env-file=./env/contracts.env --net=host ecentrics/concordia-contracts-tests:latest @docker run --rm -v ${REPORTS}/contracts/:/usr/test-reports/ --env-file=./env/contracts.env --net=host ecentrics/concordia-contracts-tests:latest
run-contracts-migrate: run-contracts-migrate:
@docker run --rm -v ${PACKAGES}/concordia-contracts/build/:/usr/src/concordia/packages/concordia-contracts/build/ --env-file=./env/contracts.env --net=concordia_ganache_network ecentrics/concordia-contracts-migrate:latest @docker run --rm -v ${PACKAGES}/concordia-contracts/build/:/usr/src/concordia/packages/concordia-contracts/build/ --env-file=./env/contracts.env --net=concordia_concordia_network ecentrics/concordia-contracts-migrate:latest
run-contracts-migrate-host-chain: run-contracts-migrate-host-chain:
@docker run --rm -v ${PACKAGES}/concordia-contracts/build/:/usr/src/concordia/packages/concordia-contracts/build/ --env-file=./env/contracts.env --net=host ecentrics/concordia-contracts-migrate:latest @docker run --rm -v ${PACKAGES}/concordia-contracts/build/:/usr/src/concordia/packages/concordia-contracts/build/ --env-file=./env/contracts.env --net=host ecentrics/concordia-contracts-migrate:latest
get-contracts: get-contracts:
@ -64,13 +62,9 @@ build-app-tests:
run-app-tests: run-app-tests:
@docker run --rm -v ${REPORTS}/app/:/usr/test-reports/ --env-file=./env/concordia.env ecentrics/concordia-app-tests:latest @docker run --rm -v ${REPORTS}/app/:/usr/test-reports/ --env-file=./env/concordia.env ecentrics/concordia-app-tests:latest
run-app: run-app:
@docker create --env-file=./env/concordia.env -p 7777:80 --name concordia-app --net=concordia_ganache_network ecentrics/concordia-app:latest &&\ @docker run -d --env-file=./env/concordia.env -p 7777:80 --name concordia-app ecentrics/concordia-app:latest
docker network connect concordia_rendezvous_network concordia-app &&\
docker start concordia-app
run-app-staging: run-app-staging:
@docker create -it --env-file=./env/concordia.env -p 7000:3000 --name concordia-app-staging --net=concordia_ganache_network ecentrics/concordia-app-staging:latest &&\ @docker run -itd --env-file=./env/concordia.env -p 7000:3000 --name concordia-app-staging ecentrics/concordia-app-staging:latest
docker network connect concordia_rendezvous_network concordia-app-staging &&\
docker start concordia-app-staging
run-app-host-chain: run-app-host-chain:
@docker run -d --env-file=./env/concordia.env --name concordia-app --net=host ecentrics/concordia-app:latest @docker run -d --env-file=./env/concordia.env --name concordia-app --net=host ecentrics/concordia-app:latest
@ -78,17 +72,17 @@ run-app-host-chain:
build-contracts-provider: build-contracts-provider:
@docker build ../ -f ./concordia-contracts-provider/Dockerfile -t ecentrics/concordia-contracts-provider --build-arg TZ=Europe/Athens @docker build ../ -f ./concordia-contracts-provider/Dockerfile -t ecentrics/concordia-contracts-provider --build-arg TZ=Europe/Athens
run-contracts-provider-staging: run-contracts-provider-staging:
@docker run -d -v ${CONTRACTS_PROVIDER_VOLUMES}/contracts:/data/contracts --env-file=./env/contracts-provider.env -e NODE_ENV=production -p 8400:8400 --name concordia-contracts-provider ecentrics/concordia-contracts-provider:latest @docker run -d -v ${CONTRACTS_PROVIDER_VOLUMES}/contracts:/data/contracts --env-file=./env/contracts-provider.env -e NODE_ENV=production -p 8400:8400 --name concordia-contracts-provider --net=concordia_concordia_network ecentrics/concordia-contracts-provider:latest
run-contracts-provider: run-contracts-provider:
@docker run -d -v ${CONTRACTS_PROVIDER_VOLUMES}/contracts:/data/contracts --env-file=./env/contracts-provider.env -p 8400:8400 --name concordia-contracts-provider ecentrics/concordia-contracts-provider:latest @docker run -d -v ${CONTRACTS_PROVIDER_VOLUMES}/contracts:/data/contracts --env-file=./env/contracts-provider.env -p 8400:8400 --name concordia-contracts-provider --net=concordia_concordia_network ecentrics/concordia-contracts-provider:latest
# Contracts provider targets # Pinner targets
build-pinner: build-pinner:
@docker build ../ -f ./concordia-pinner/Dockerfile -t ecentrics/concordia-pinner --build-arg TZ=Europe/Athens @docker build ../ -f ./concordia-pinner/Dockerfile -t ecentrics/concordia-pinner --build-arg TZ=Europe/Athens
run-pinner-staging: run-pinner-staging:
@docker run -d -v ${PINNER_VOLUMES}/orbitdb:/data/orbitdb --env-file=./env/pinner.env -e NODE_ENV=production -p 4444:4444 --name concordia-pinner ecentrics/concordia-pinner:latest @docker run -d -v ${PINNER_VOLUMES}/orbitdb:/data/orbitdb --env-file=./env/pinner.env -e NODE_ENV=production -p 4444:4444 --name concordia-pinner --net=concordia_concordia_network ecentrics/concordia-pinner:latest
run-pinner: run-pinner:
@docker run -d -v ${PINNER_VOLUMES}/orbitdb:/data/orbitdb --env-file=./env/pinner.env -p 4444:4444 --name concordia-pinner ecentrics/concordia-pinner:latest @docker run -d -v ${PINNER_VOLUMES}/orbitdb:/data/orbitdb --env-file=./env/pinner.env -p 4444:4444 --name concordia-pinner --net=concordia_concordia_network ecentrics/concordia-pinner:latest
run-pinner-staging-host: run-pinner-staging-host:
@docker run -d -v ${PINNER_VOLUMES}/orbitdb:/data/orbitdb --env-file=./env/pinner.env -e NODE_ENV=production --net=host --name concordia-pinner ecentrics/concordia-pinner:latest @docker run -d -v ${PINNER_VOLUMES}/orbitdb:/data/orbitdb --env-file=./env/pinner.env -e NODE_ENV=production --net=host --name concordia-pinner ecentrics/concordia-pinner:latest
run-pinner-host: run-pinner-host:

6
docker/concordia-app/Dockerfile

@ -12,14 +12,16 @@ WORKDIR /usr/src/concordia
COPY ./package.json . COPY ./package.json .
COPY ./yarn.lock . COPY ./yarn.lock .
# Copy package.json files from contracts and app, then install base modules # Copy package.json files from contracts, shared and app, then install modules
COPY ./packages/concordia-contracts/package.json ./packages/concordia-contracts/package.json COPY ./packages/concordia-contracts/package.json ./packages/concordia-contracts/package.json
COPY ./packages/concordia-shared/package.json ./packages/concordia-shared/package.json
COPY ./packages/concordia-app/package.json ./packages/concordia-app/ COPY ./packages/concordia-app/package.json ./packages/concordia-app/
RUN yarn install --frozen-lockfile RUN yarn install --frozen-lockfile
# Gets the rest of the source code # Gets the rest of the source code
COPY ./packages/concordia-contracts ./packages/concordia-contracts COPY ./packages/concordia-contracts ./packages/concordia-contracts
COPY ./packages/concordia-shared ./packages/concordia-shared
COPY ./packages/concordia-app ./packages/concordia-app COPY ./packages/concordia-app ./packages/concordia-app
# Fix timezome # Fix timezome
@ -38,7 +40,7 @@ COPY ./docker/concordia-app/test-app.sh .
WORKDIR /usr/src/concordia/packages/concordia-app WORKDIR /usr/src/concordia/packages/concordia-app
RUN chmod +x /opt/concordia-app/test-app.sh RUN ["chmod", "+x", "/opt/concordia-app/test-app.sh"]
ENTRYPOINT ["/opt/concordia-app/test-app.sh"] ENTRYPOINT ["/opt/concordia-app/test-app.sh"]

4
docker/concordia-contracts-provider/Dockerfile

@ -21,12 +21,14 @@ WORKDIR /usr/src/concordia
COPY ./package.json . COPY ./package.json .
COPY ./yarn.lock . COPY ./yarn.lock .
# Copy the contracts provider package.json, then install modules # Copy package.json files from shared and contracts provider, then install modules
COPY ./packages/concordia-shared/package.json ./packages/concordia-shared/
COPY ./packages/concordia-contracts-provider/package.json ./packages/concordia-contracts-provider/ COPY ./packages/concordia-contracts-provider/package.json ./packages/concordia-contracts-provider/
RUN yarn install --frozen-lockfile --network-timeout 100000 RUN yarn install --frozen-lockfile --network-timeout 100000
# Gets the rest of the source code # Gets the rest of the source code
COPY ./packages/concordia-shared ./packages/concordia-shared
COPY ./packages/concordia-contracts-provider ./packages/concordia-contracts-provider COPY ./packages/concordia-contracts-provider ./packages/concordia-contracts-provider
WORKDIR /usr/src/concordia/packages/concordia-contracts-provider WORKDIR /usr/src/concordia/packages/concordia-contracts-provider

4
docker/concordia-contracts/Dockerfile

@ -21,12 +21,14 @@ WORKDIR /usr/src/concordia
COPY ./package.json . COPY ./package.json .
COPY ./yarn.lock . COPY ./yarn.lock .
# Copy the contracts package.json, then install modules # Copy package.json files from shared and contracts, then install modules
COPY ./packages/concordia-shared/package.json ./packages/concordia-shared/
COPY ./packages/concordia-contracts/package.json ./packages/concordia-contracts/ COPY ./packages/concordia-contracts/package.json ./packages/concordia-contracts/
RUN yarn install --frozen-lockfile --network-timeout 100000 RUN yarn install --frozen-lockfile --network-timeout 100000
# Gets the rest of the source code # Gets the rest of the source code
COPY ./packages/concordia-shared ./packages/concordia-shared
COPY ./packages/concordia-contracts ./packages/concordia-contracts COPY ./packages/concordia-contracts ./packages/concordia-contracts
# -------------------------------------------------- # --------------------------------------------------

2
docker/concordia-contracts/migrate.sh

@ -3,4 +3,4 @@
export CHAIN_HOST="$DEPLOY_CHAIN_HOST" export CHAIN_HOST="$DEPLOY_CHAIN_HOST"
export CHAIN_PORT="$DEPLOY_CHAIN_PORT" export CHAIN_PORT="$DEPLOY_CHAIN_PORT"
cd /usr/src/concordia/packages/concordia-contracts && yarn _migrate --network "${MIGRATE_NETWORK}" --reset cd /usr/src/concordia/packages/concordia-contracts && yarn _migrate --network "${MIGRATE_NETWORK}" --reset && yarn upload

2
docker/concordia-pinner/Dockerfile

@ -17,7 +17,7 @@ WORKDIR /usr/src/concordia
COPY ./package.json . COPY ./package.json .
COPY ./yarn.lock . COPY ./yarn.lock .
# Copy the pinner, contracts and shared package.json files, then install modules # Copy package.json files from contracts, shared and pinner, then install modules
COPY ./packages/concordia-pinner/package.json ./packages/concordia-pinner/ COPY ./packages/concordia-pinner/package.json ./packages/concordia-pinner/
COPY ./packages/concordia-contracts/package.json ./packages/concordia-contracts/ COPY ./packages/concordia-contracts/package.json ./packages/concordia-contracts/
COPY ./packages/concordia-shared/package.json ./packages/concordia-shared/ COPY ./packages/concordia-shared/package.json ./packages/concordia-shared/

7
docker/docker-compose.yml

@ -17,18 +17,17 @@ services:
volumes: volumes:
- ./ganache/volumes/ganache_keys:/home/ganache_keys - ./ganache/volumes/ganache_keys:/home/ganache_keys
networks: networks:
ganache_network: concordia_network:
restart: always restart: always
rendezvous: rendezvous:
image: libp2p/js-libp2p-webrtc-star:version-0.20.5 image: libp2p/js-libp2p-webrtc-star:version-0.20.5
container_name: concordia-rendezvous container_name: concordia-rendezvous
networks: networks:
rendezvous_network: concordia_network:
ports: ports:
- 9090:9090 - 9090:9090
restart: always restart: always
networks: networks:
ganache_network: concordia_network:
rendezvous_network:

1
docker/env/concordia.env

@ -1,3 +1,4 @@
# Variables needed in runtime (in browser) # Variables needed in runtime (in browser)
REACT_APP_RENDEZVOUS_HOST=127.0.0.1 REACT_APP_RENDEZVOUS_HOST=127.0.0.1
REACT_APP_RENDEZVOUS_PORT=9090 REACT_APP_RENDEZVOUS_PORT=9090
USE_EXTERNAL_CONTRACTS_PROVIDER=true

7
docker/env/contracts.env

@ -1,7 +1,10 @@
# Variables needed in runtime # Variables needed in runtime
MIGRATE_NETWORK=env MIGRATE_NETWORK=env
DEPLOY_CHAIN_HOST=concordia-ganache WEB3_HOST=concordia-ganache
DEPLOY_CHAIN_PORT=8545 WEB3_PORT=8545
CONTRACTS_PROVIDER_HOST=concordia-contracts-provider
CONTRACTS_PROVIDER_PORT=8400
TEST_CHAIN_HOST=concordia-ganache-test TEST_CHAIN_HOST=concordia-ganache-test
TEST_CHAIN_PORT=8546 TEST_CHAIN_PORT=8546

7
docker/env/pinner.env

@ -1,16 +1,15 @@
USE_EXTERNAL_CONTRACTS_PROVIDER=true USE_EXTERNAL_CONTRACTS_PROVIDER=true
ORBIT_DIRECTORY=/data/orbitdb ORBIT_DIRECTORY=/data/orbitdb
#CONTRACTS_PROVIDER_HOST=contracts-provider CONTRACTS_PROVIDER_HOST=concordia-contracts-provider
CONTRACTS_PROVIDER_HOST=127.0.0.1
CONTRACTS_PROVIDER_PORT=8400 CONTRACTS_PROVIDER_PORT=8400
CONTRACTS_VERSION_HASH=latest CONTRACTS_VERSION_HASH=latest
PINNER_API_HOST=127.0.0.1 PINNER_API_HOST=127.0.0.1
PINNER_API_PORT=4444 PINNER_API_PORT=4444
RENDEZVOUS_HOST=127.0.0.1 RENDEZVOUS_HOST=concordia-rendezvous
RENDEZVOUS_PORT=9090 RENDEZVOUS_PORT=9090
WEB3_HOST=127.0.0.1 WEB3_HOST=concordia-ganache
WEB3_PORT=8545 WEB3_PORT=8545

Loading…
Cancel
Save