Localstack. Permission denied initial script

231 Views Asked by At

I have the first project with docker compose file:

version: '3'

services:
  ...other services...

  localstack:
    container_name: localstack
    image: localstack/localstack:2.3
    hostname: localstack
    env_file:
      - /.env
    ports:
      - "4566:4566"
      - 8080:8080
    environment:
      - SERVICES=s3,ses
      - DEBUG=${DEBUG- }
      - DOCKER_HOST=unix:///var/run/docker.sock
      - HOSTNAME=localstack
    networks:
      - ntwk1
    volumes:
      - localstack-data:/tmp/localstack
      - "/var/run/docker.sock:/var/run/docker.sock"
      - ./localstack-script.sh:/etc/localstack/init/ready.d/script.sh

volumes:
  localstack-data:
networks:
  ntwk1:
    external: true

Here localstack-script.sh works correctly and everything is okay. But if I do it in other docker-compose file it fails. My localstack-srcipt.sh:

#!/bin/bash

awslocal s3api \
create-bucket --bucket $S3_BUCKET_NAME \
--create-bucket-configuration LocationConstraint=eu-central-1 \
--region eu-central-1

Then I created another project with another docker-compose file:

version: '3'

services:
  ... other services...

  localstack_1:
    container_name: localstack_1
    image: localstack/localstack:2.3
    hostname: localstack_1
    env_file:
      - .env
    ports:
      - "4567:4566"
      - 8081:8080
    environment:
      - SERVICES=s3
      - DEBUG=${DEBUG- }
      - DOCKER_HOST=unix:///var/run/docker.sock
      - HOSTNAME=localstack_1
    networks:
      - ntwk
    volumes:
      - localstack1:/tmp/localstack
      - "/var/run/docker.sock:/var/run/docker.sock"
      - ./localstack-script.sh:/etc/localstack/init/ready.d/script.sh
volumes:
  localstack1:
networks:
  ntwk:
    external: true

And it gives error:

ERROR --- [  MainThread] localstack.runtime.init    : Error while running script Script(path='/etc/localstack/init/ready.d/script.sh', stage=READY, state=ERROR): [Errno 13] Permission denied: '/etc/localstack/init/ready.d/script.sh'

In the dockerfile I give permissions to .sh files using RUN chmod +x

1

There are 1 best solutions below

0
On

Since you are mounting your script as volume, the script has to be executable. Check permissions on your script localstack-script.sh and if the script is not executable give it the permission. [chmod +x]