docker compose oci runtime error, executable file not found in $PATH
10,849
The command is executed inside the container- you are using a pulled fluentd container which does not have your start.sh file in it. You can either
A. bind mount it into the container
#docker-compose.yml
fluentd:
image: fluent/fluentd:latest
volumes:
- ./start.sh:/start.sh
command: /start.sh
or B. build it into the image
# Dockerfile
FROM fluent/fluentd:latest
COPY start.sh /start.sh
#docker-compose.yml
fluentd:
build: .
Author by
tyrell_c
Updated on June 28, 2022Comments
-
tyrell_c almost 2 years
I'm following this post:
http://eric-price.net/blog/centralized-logging-docker-aws-elasticsearch
This is what my docker-compose.yml looks like :
version: "2" services: fluentd: image: fluent/fluentd:latest ports: - "24224:24224" command: start.sh networks: - lognet nginx: image: nginx-pixel ports: - "80:80" logging: driver: fluentd networks: - lognet networks: lognet: driver: bridge
my
start.sh
is in the same directory as the yml file. When I rundocker-compose up -d
this is what I get :ERROR: for fluentd Cannot start service fluentd: oci runtime error: exec: "start.sh": executable file not found in $PATH ERROR: Encountered errors while bringing up the project.
My docker-compose info:
docker-compose version 1.8.0, build f3628c7 docker-py version: 1.9.0 CPython version: 2.7.9 OpenSSL version: OpenSSL 1.0.1e 11 Feb 2013
-
tyrell_c over 7 yearsThanks. I fixed it by adding this in my docker-compose :
volumes:- ./fluentd/etc:/fluentd/etc
command: /fluentd/etc/start.sh
-
Paul Becotte over 7 yearsFrom reading that blog post, that start.sh is not a good practice- you should run the gem installs in a Dockerfile so that you don't have to re-install them every time you run your container.