[ https://jira.fiware.org/browse/HELP-19039?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=115440#comment-115440 ] Jason Fox commented on HELP-19039: ---------------------------------- User was attempting to use PowerShell to run Bash commands. They were advised to use a bash shell in the comments. > [fiware-stackoverflow] ': not a valid identifiert: ` when running bash create command in windows > ---------------------------------------------------------------------------------------------------- > > Key: HELP-19039 > URL: https://jira.fiware.org/browse/HELP-19039 > Project: Help-Desk > Issue Type: Monitor > Components: FIWARE-TECH-HELP > Reporter: Backlog Manager > Assignee: Jason Fox > Labels: bash, docker-compose, fiware, powershell > > Created question in FIWARE Q/A platform on 13-12-2021 at 08:12 > {color: red}Please, ANSWER this question AT{color} https://stackoverflow.com/questions/70331540/not-a-valid-identifiert-when-running-bash-create-command-in-windows > +Question:+ > ': not a valid identifiert: ` when running bash create command in windows > +Description:+ > I'm trying to implement this tutorial, but when I try to run "./services create" command in powershell (in windows 10) I get this error : > ': not a valid identifiert: ` > ': not a valid identifiert: ` > ': not a valid identifiert: ` > ': not a valid identifiert: ` > ': not a valid identifiert: ` > ': not a valid identifiert: ` > ': not a valid identifiert: ` > ': not a valid identifiert: ` > ': not a valid identifiert: ` > I've converted the carriage return in notepad++ (Edit -> EOL conversion -> Unix (LF)) before running the code. before this conversion I was getting this error : > ./services: line 16: $'\r': command not found > : invalid option 17: set: - > set: usage: set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...] > ./services: line 18: $'\r': command not found > ./services: line 30: syntax error near unexpected token `$'{\r'' > '/services: line 30: `loadData () { > you can also see the bash script here : > #!/bin/bash > # > # Command Line Interface to start all services associated with the Tutorial > # > # For this tutorial the commands are merely a convenience script to run docker or docker-compose > # > # Each services script can be run using either docker-compose (the external tool with the hyphen -) > # or docker compose (the newer version directly bundled with Docker with a space ) > # > # if you start up with the following command: > # > # ./services start legacy > # > # This will force the script to use docker-compose which may be more reliable in > # some cases (or if an older version of Docker is being used) > set -e > dockerCmd="docker compose" > if (( $# == 2 )); then > dockerCmd="docker-compose" > fi > if (( $# < 1 )); then > echo "Illegal number of parameters" > echo "usage: services [create|start|stop]" > exit 1 > fi > loadData () { > docker run --rm -v $(pwd)/import-data:/import-data \ > --network fiware_default \ > -e ORION_PORT="${ORION_PORT}" \ > -e TUTORIAL_APP_PORT="${TUTORIAL_APP_PORT}" \ > --entrypoint /bin/ash curlimages/curl import-data > waitForIoTAgent > docker run --rm -v $(pwd)/provision-devices:/provision-devices \ > --network fiware_default \ > -e ORION_PORT="${ORION_PORT}" \ > -e TUTORIAL_APP_PORT="${TUTORIAL_APP_PORT}" \ > -e TUTORIAL_DUMMY_DEVICE_PORT="${TUTORIAL_DUMMY_DEVICE_PORT}" \ > -e IOTA_NORTH_PORT="${IOTA_NORTH_PORT}" \ > --entrypoint /bin/ash curlimages/curl provision-devices > echo "" > } > waitForKeyrock () { > echo -e "⏳ Waiting for \033[1;31mKeyrock\033[0m to be available\n" > > while ! [ `docker inspect --format='{{.State.Health.Status}}' fiware-keyrock` == "healthy" ] > do > echo -e "Keyrock HTTP state: " `curl -s -o /dev/null -w %{http_code} 'http://localhost:3005/version'` " (waiting for 200)" > sleep 5 > done > echo -e " \033[1;32mdone\033[0m" > } > waitForWirecloud () { > echo -e "⏳ Waiting for \033[1;35mWirecloud\033[0m to be available\n" > > while [ `curl -s -o /dev/null -w %{http_code} 'http://localhost:8000/api/features'` -eq 000 ] > do > echo -e "Wirecloud HTTP state: " `curl -s -o /dev/null -w %{http_code} 'http://localhost:8000/api/features'` " (waiting for 200)" > sleep 5 > done > echo -e " \033[1;32mdone\033[0m" > } > waitForMongo () { > echo -e "\n⏳ Waiting for \033[1mMongoDB\033[0m to be available\n" > while ! [ `docker inspect --format='{{.State.Health.Status}}' db-mongo` == "healthy" ] > do > sleep 1 > done > } > waitForOrion () { > echo -e "\n⏳ Waiting for \033[1;34mOrion\033[0m to be available\n" > while ! [ `docker inspect --format='{{.State.Health.Status}}' fiware-orion` == "healthy" ] > do > echo -e "Context Broker HTTP state: " `curl -s -o /dev/null -w %{http_code} 'http://localhost:1026/version'` " (waiting for 200)" > sleep 1 > done > } > waitForIoTAgent () { > echo -e "\n⏳ Waiting for \033[1;36mIoT-Agent\033[0m to be available\n" > while ! [ `docker inspect --format='{{.State.Health.Status}}' fiware-iot-agent` == "healthy" ] > do > echo -e "IoT Agent HTTP state: " `curl -s -o /dev/null -w %{http_code} 'http://localhost:4041/version'` " (waiting for 200)" > sleep 1 > done > } > addDatabaseIndex () { > printf "Adding appropriate \033[1mMongoDB\033[0m indexes for \033[1;34mOrion\033[0m ..." > docker exec db-mongo mongo --eval ' > conn = new Mongo();db.createCollection("orion"); > db = conn.getDB("orion"); > db.createCollection("entities"); > db.entities.createIndex({"_id.servicePath": 1, "_id.id": 1, "_id.type": 1}, {unique: true}); > db.entities.createIndex({"_id.type": 1}); > db.entities.createIndex({"_id.id": 1});' > /dev/null > docker exec db-mongo mongo --eval ' > conn = new Mongo();db.createCollection("orion-openiot"); > db = conn.getDB("orion-openiot"); > db.createCollection("entities"); > db.entities.createIndex({"_id.servicePath": 1, "_id.id": 1, "_id.type": 1}, {unique: true}); > db.entities.createIndex({"_id.type": 1}); > db.entities.createIndex({"_id.id": 1});' > /dev/null > echo -e " \033[1;32mdone\033[0m" > printf "Adding appropriate \033[1mMongoDB\033[0m indexes for \033[1;36mIoT-Agent\033[0m ..." > docker exec db-mongo mongo --eval ' > conn = new Mongo(); > db = conn.getDB("iotagentul"); > db.createCollection("devices"); > db.devices.createIndex({"_id.service": 1, "_id.id": 1, "_id.type": 1}); > db.devices.createIndex({"_id.type": 1}); > db.devices.createIndex({"_id.id": 1}); > db.createCollection("groups"); > db.groups.createIndex({"_id.resource": 1, "_id.apikey": 1, "_id.service": 1}); > db.groups.createIndex({"_id.type": 1});' > /dev/null > echo -e " \033[1;32mdone\033[0m" > } > startContainers () { > echo "" > export IDM_HTTPS_ENABLED="$1" > ${dockerCmd} up -d --remove-orphans > echo "" > } > stoppingContainers () { > CONTAINERS=$(docker ps -aq) > if [[ -n $CONTAINERS ]]; then > echo "Stopping containers" > docker rm -f $CONTAINERS > fi > VOLUMES=$(docker volume ls -qf dangling=true) > if [[ -n $VOLUMES ]]; then > echo "Removing old volumes" > docker volume rm $VOLUMES > fi > } > command="$1" > case "${command}" in > "help") > echo "usage: services [create|start|stop]" > ;; > "start") > export $(cat .env | grep "#" -v) > stoppingContainers > echo -e "Starting containers: \033[1;34mOrion\033[0m, \033[1;36mIoT-Agent\033[0m, \033[1;31mKeyrock\033[0m, \033[1;35mWirecloud\033[0m, \033[1mTutorial\033[0m" > echo -e "Along with the following databases: \033[1mMongoDB\033[0m, \033[1mPostGres\033[0m and \033[1mMySQL\033[0m" > echo -e "and microservices: \033[1mElasticSearch\033[0m, \033[1mMemCache\033[0m and \033[1;35mNGSI Proxy\033[0m\n" > echo -e "- \033[1;34mOrion\033[0m is the context broker" > echo -e "- \033[1;36mIoT-Agent\033[0m is configured for the UltraLight Protocol" > echo -e "- \033[1mTutorial\033[0m acts as a series of dummy IoT Sensors over HTTP" > echo -e "- \033[1;31mKeyrock\033[0m is an Identity Management Front-End" > echo -e "- \033[1;35mWirecloud\033[0m is a Dashboard Utility" > echo -e "- \033[1;35mNGSI Proxy\033[0m creates a server that is capable of redirecting Orion notifications to web pages" > startContainers false > waitForMongo > addDatabaseIndex > waitForOrion > loadData > waitForWirecloud > waitForKeyrock > echo -e "Now open \033[4mhttp://localhost:8000\033[0m" > ;; > "stop") > export $(cat .env | grep "#" -v) > stoppingContainers > ;; > "create") > export $(cat .env | grep "#" -v) > echo "Pulling Docker images" > docker pull curlimages/curl > ${dockerCmd} pull > ;; > *) > echo "Command not Found." > echo "usage: services [create|start|stop]" > exit 127; > ;; > esac -- This message was sent by Atlassian JIRA (v6.4.1#64016)
You can get more information about our cookies and privacy policies clicking on the following links: Privacy policy Cookies policy