Browse Source

build-node-docker without docker-compose

Mokhtar Naamani 3 years ago
parent
commit
faa04f9553
2 changed files with 21 additions and 20 deletions
  1. 20 12
      build-node-docker.sh
  2. 1 8
      docker-compose.yml

+ 20 - 12
build-node-docker.sh

@@ -2,23 +2,31 @@
 
 set -e
 
-if ! command -v docker-compose &> /dev/null
-then
-  echo "docker-compose not found. Skipping docker image builds."
-  exit 0
-fi
+# Looks for a cached joystream/node image matching code shasum.
+# Search order: local repo then dockerhub. If no cached image is found we build it.
+# Finally image is tagged as "latest"
 
-# Fetch a cached joystream/node image if one is found matching code shasum instead of building
 CODE_HASH=`scripts/runtime-code-shasum.sh`
 IMAGE=joystream/node:${CODE_HASH}
-echo "Trying to fetch cached ${IMAGE} image"
-docker pull ${IMAGE} || :
+LATEST=joystream/node:latest
 
+# Look for image locally
 if ! docker inspect ${IMAGE} > /dev/null;
 then
-  echo "Fetch failed, building image locally"
-  docker-compose build joystream-node
+  # Not found, try to fetch from remote repo
+  echo "Trying to fetch cached ${IMAGE} image"
+  docker pull ${IMAGE} || :
+
+  # If we didn't find it, build it
+  if ! docker inspect ${IMAGE} > /dev/null;
+  then
+    echo "Building ${IMAGE}.."
+    docker build . --file joystream-node.Dockerfile --tag ${IMAGE}
+  fi
 else
-  echo "Tagging cached image as 'latest'"
-  docker image tag ${IMAGE} joystream/node:latest
+  echo "Found ${IMAGE} in local repo"
 fi
+
+# At this point image should be in local repo
+echo "Tagging ${IMAGE} as ${LATEST}"
+docker image tag ${IMAGE} ${LATEST}

+ 1 - 8
docker-compose.yml

@@ -1,16 +1,9 @@
-# Compiles new joystream/node and joystream/apps images if local images not found
-# and runs a complete joystream development network
-# To prevent build of docker images run docker-compose with "--no-build" arg
+# Complete joystream development network
 version: '3.4'
 services:
   joystream-node:
     image: joystream/node:$JOYSTREAM_NODE_TAG
     restart: unless-stopped
-    build:
-      # context is relative to the compose file
-      context: .
-      # dockerfile is relative to the context
-      dockerfile: joystream-node.Dockerfile
     container_name: joystream-node
     volumes:
       - chain-data:/data