OzrenTkalcecKrznaric
OzrenTkalcecKrznaric

Reputation: 5646

Dockerfile failing to start CMD script

I have this in Dockerfile:

FROM node:alpine

COPY seed.sh /
RUN chmod +x /seed.sh
RUN apk add --no-cache bash

CMD pwd; ls -al; cat seed.sh; ./seed.sh

Then I build docker-compose and start it:

[docker-compose.yml part]

...
dbseeder:
  container_name: dbseeder
  build:
    context: ./db-seeder
    dockerfile: Dockerfile
  depends_on:
    - db
...

Build / run

docker-compose build --no-cache
docker-compose up

And the up output is as follows:

dbseeder    | /
dbseeder    | total 68
dbseeder    | drwxr-xr-x    1 root     root          4096 Sep  2 12:27 .
dbseeder    | drwxr-xr-x    1 root     root          4096 Sep  2 12:27 ..
dbseeder    | -rwxr-xr-x    1 root     root             0 Sep  2 12:27 .dockerenv
dbseeder    | drwxr-xr-x    1 root     root          4096 Sep  2 12:27 bin
dbseeder    | drwxr-xr-x    5 root     root           340 Sep  2 12:27 dev
dbseeder    | drwxr-xr-x    1 root     root          4096 Sep  2 12:27 etc
dbseeder    | drwxr-xr-x    1 root     root          4096 Aug 12 21:22 home
dbseeder    | drwxr-xr-x    1 root     root          4096 Aug 12 21:22 lib
dbseeder    | drwxr-xr-x    5 root     root          4096 Apr 23 06:25 media
dbseeder    | drwxr-xr-x    2 root     root          4096 Apr 23 06:25 mnt
dbseeder    | drwxr-xr-x    1 root     root          4096 Aug 12 21:22 opt
dbseeder    | dr-xr-xr-x  244 root     root             0 Sep  2 12:27 proc
dbseeder    | drwx------    1 root     root          4096 Aug 12 21:22 root
dbseeder    | drwxr-xr-x    2 root     root          4096 Apr 23 06:25 run
dbseeder    | drwxr-xr-x    2 root     root          4096 Apr 23 06:25 sbin
dbseeder    | -rwxrwxrwx    1 root     root           197 Sep  2 12:27 seed.sh
dbseeder    | drwxr-xr-x    2 root     root          4096 Apr 23 06:25 srv
dbseeder    | dr-xr-xr-x   11 root     root             0 Sep  2 12:27 sys
dbseeder    | drwxrwxrwt    1 root     root          4096 Aug 12 21:22 tmp
dbseeder    | drwxr-xr-x    1 root     root          4096 Aug 12 21:22 usr
dbseeder    | drwxr-xr-x    1 root     root          4096 Apr 23 06:25 var
dbseeder    | #!/bin/bash
dbseeder    |
dbseeder    | echo "Seeding database..."
dbseeder    |
dbseeder    | cd seeders
dbseeder    | npx sequelize db:seed:all --url 'mysql://root:pass123@dbserver/mydb'
dbseeder    |
dbseeder    | echo "Seeding done."
dbseeder    | /bin/sh: ./seed.sh: not found

Whatever I do, seed.sh is not found, but as you can see, it's there.

What am I doing wrong?

EDIT

Yes, I tried with '/bin/sh'

[partial up output]

...
dbseeder    | #!/bin/sh
dbseeder    |
dbseeder    | echo "Seeding database..."
dbseeder    |
dbseeder    | cd seeders
dbseeder    | #sequelize db:seed:all
dbseeder    | npx sequelize db:seed:all --url 'mysql://root:pass123@dbserver/mydb'
dbseeder    |
dbseeder    | echo "Seeding done."
dbseeder    | /bin/sh: ./seed.sh: not found
...

Upvotes: 0

Views: 58

Answers (1)

OzrenTkalcecKrznaric
OzrenTkalcecKrznaric

Reputation: 5646

Ok, it turns out that node:alpine has node REPL as an entry point. So, this had to be done in Dockerfile in order to make it work:

ENTRYPOINT ["/bin/sh", "seed.sh"]

Upvotes: 1

Related Questions