Mr.T  
                
                  
                    1 November 2019 00:07
                   
                  1 
               
             
            
              I have a problem using the exec node.
fswebcam --rotate 270 /home/pi/nodehttpd/image.jpg 
Node Red is started in a Docker container via Docker-Compose.
  nodered:
    container_name: nodered
    build: ./services/nodered/.
    privileged: true
    restart: unless-stopped
    user: "1000"
    ports:
      - 1880:1880
    volumes:
      - ./volumes/nodered/data:/data
"fswebcam" is installed on the host.
I cannot executed it, even with a shell script in the shares /data folder. direct paths etc tested.
Debug : "command not found"
Any suggestions?
             
            
              
                
            
           
          
            
            
              Did you try giving the full path to the command ?
             
            
              
            
           
          
            
              
                Mr.T  
              
                  
                    1 November 2019 08:00
                   
                  3 
               
             
            
              Yes,
/usr/bin/fswebcam --rotate 270 /home/pi/nodehttpd/image.jpg 
I also tried it with a simple bash script in the data folder (getpic.sh), containing the commands abovebash /data/getpc.sh 
             
            
              
            
           
          
            
            
              the container has it's own isolated file system (that is kind of the point :-). so you would need to either ssh back out of the container to the host - or mount (or maybe alias) the command into the mounted volume (but then it may not have access to all the required libraries (if any are needed))
             
            
              1 Like 
            
            
           
          
            
              
                Mr.T  
              
                  
                    1 November 2019 14:04
                   
                  5 
               
             
            
              Thank you for help, dceejay.
As workaround I use a node.js  script as webserver now.http://IPADDRESS:8888/ 
var http = require("http");
const exec = require("child_process").exec;
function onRequest(request, res) {
  console.log("Request received.");
  var child = exec('bash /home/pi/campic.sh', function(err, stdout, stderr) {
            console.log(stdout);
            console.log(stderr);
            if (err !== null) {
                console.log(`exec error: ${err}`);
            }
  });
}
http.createServer(onRequest).listen(8888, function () {
  console.log("Server has started.");
});
If someone has a better idea, please let me know.
             
            
              
            
           
          
            
              
                lei1  
              
                  
                    25 October 2021 12:28
                   
                  6 
               
             
            
              Do you have a better way?
             
            
              
            
           
          
            
            
              You've opened your own thread so closing this one