Error starting action server on Docker

Hi , I using Rasa ver 1.10.26 running on RaspberryPi 4 using docker image from GitHub - koenvervloesem/rasa-docker-arm: Rasa Docker image for ARMv7. Runs on a Raspberry Pi. and 1.10.3 Rasa SDK . Currently i facing issues to deploying my docker container for action server , does anyone possible to correct my mistake ? I used docker ps , it only shows my rasa server .

pi@raspberrypi:~/Desktop/rasa_bot/rasa-docker-arm $ docker-compose up
Starting rasa-docker-arm_action-server_1 ... done
Starting rasa-docker-arm_rasa_1          ... done
Attaching to rasa-docker-arm_action-server_1, rasa-docker-arm_rasa_1
action-server_1  | standard_init_linux.go:228: exec user process caused: exec format error
    rasa-docker-arm_action-server_1 exited with code 1

docker-compose.yml

> version: '3'
> services:
>   rasa:
>     image: rasa:1.10.26
>     expose:
>       - 5005
>     ports:
>       - 5005:5005
>     volumes:
>       - ./:/app
>     command:
>       - run
>       - --cors
>       - "*"
>       - --enable-api
>       - --log-file
>       - out.log
>     depends_on:
>       - action-server
>   action-server:
>     image: rasa/rasa-sdk:1.10.3
>     volumes:
>       - ./actions:/app/actions
>     ports:
>       - "5055:5055"  

Dockerfile (Got from rasa1.X doc , tested to built my own docker image same problem)

# Extend the official Rasa SDK image
FROM rasa/rasa-sdk:1.10.3

# Use subdirectory as working directory
WORKDIR /app

# Change back to root user to install dependencies
USER root

# Copy actions folder to working directory
COPY ./actions /app/actions

# By best practices, don't run the code with root user
USER 1001

Thanks

@BELIEVEIT did you managed to install all the dependencies and software for action server using requrenments.txt? Why only these versions why not latest?

Try this image:

> version: "3.0"
> 
> services:
> 
>   rasa:
> 
>     image: rasa/rasa:2.6.3-full
> 
>     ports:
> 
>       - 5005:5005
> 
>     volumes:
> 
>       - ./:/app
> 
>     command:
> 
>       - run
> 
>       - -m
> 
>       - models
> 
>       - --enable-api
> 
>       - --cors
> 
>       - "*"
> 
>       - --debug
> 
>   action_server:
> 
>     image: rasa/rasa_core_sdk:latest
> 
>     ports:
> 
>       - 5055:5055
> 
>     volumes:
> 
>       - ./actions:/app/actions
> 
>     command:

>       - rasa
> 
>       - run
> 
>       - actions

I had to make following changes to get your docker-compose.yml to work. After I made these changes though, both processes were running.

  • use the latest versions (as @nik202 suggested)

  • use “rasa/rasa” when setting the rasa image

    docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 620fb044edb2 ed129378bae7 "rasa run --cors * -…" 2 minutes ago Up 2 minutes 0.0.0.0:5005->5005/tcp, :::5005->5005/tcp rasa_forum_rasa_1 69640e57d142 9681c32b59b0 "./entrypoint.sh sta…" 2 minutes ago Up 2 minutes 0.0.0.0:5055->5055/tcp, :::5055->5055/tcp rasa_forum_action-server_1

Here is the docker-compose.yml that I used:

 version: '3'
 services:
   rasa:
 image: rasa/rasa:latest
 expose:
   - 5005
 ports:
   - 5005:5005
 volumes:
   - ./:/app
 command:
   - run
   - --cors
   - "*"
   - --enable-api
   - --log-file
   - out.log
 depends_on:
   - action-server
   action-server:
 image: rasa/rasa-sdk:latest
 volumes:
   - ./actions:/app/actions
 ports:
   - "5055:5055"

In general in docker is not best practice to use latest tag for inmutable infrastructure, better use rasa compatibility matrix versions.

Can anyone help me on this , i still facing problem of “standard_init_linux.go:228: exec user process caused: exec format error” is it due to the architecture that is was using on raspberry pi which is ARMv7 ?