Reputation: 5646
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
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