Docker run bash script, then remove container

Is there a way I can run a bash script inside a container and then remove the container, everything in a single line? The script should be able to write to the folder where it's currently at.

I've tried

docker run --rm -ti ubuntu:trusty bash -c 'source runme.sh'

but bash can't find the file, I'm assuming because the container doesn't have access to the folder where the script is.

If the script is not available inside the container, you need to mount the script as a volume inside the container:

$ cat << EOF > sample_script.sh
echo 'Hello, world'
EOF

Run the docker container as follows (here, /path/to/sample_script.sh is the path in the host):

$ docker run -v /path/to/sample_script.sh:/sample_script.sh \
  --rm ubuntu bash sample_script.sh

Hello, world

The container will be removed after execution. Note you don't need to run it interactively, standard output will be displayed.

The docker run reference has the details about using volumes in this way.

If all you want to do is execute a script you could just use bash to read the script from stdin.

sample_script.sh < docker run --rm -i ubuntu bash -c 'source /dev/stdin'