Sign inSign up

hasnat/volumes-provisioner

By hasnat

•Updated about 3 years ago

Make directories with appropriate owner and permissions to be used by other containers

Image
0

100K+

hasnat/volumes-provisioner repository overview

⁠Docker Volumes Provisioner

hub.docker.com hasnat/volumes-provisioner⁠

An alpine based helper image to essentially make directory with appropriate owner and permissions to be used by other containers. This is achieved by install⁠

Most images require data folders to be under certain permissions, for mounted volumes directories have to be created and modified before container start. e.g.

⁠Config

Pass config as env var PROVISION_DIRECTORIES

uid:gid:mode:dir(s) e.g. 1000:1000:0755:/var/www

Can contain multiple directories separated by space and/or multiple configs separated by ;

e.g.

  • 1000:1000:0755:/var/www/html
  • 1000:1000:0755:/var/www /var/www/html
  • 1000:1000:0755:/var/www /var/www/html;1001:1001:0755:/var/app /var/app/cache
⁠Local Run example
docker run --rm \
-e PROVISION_DIRECTORIES=1000:1000:0755:/var/www \
-v `pwd`/data:/var/www \
hasnat/volumes-provisioner
ls -dhn data
⁠Docker Compose prometheus example

Here using depends_on we make sure directory with correct permissions is created before prometheus starts

version: '2'
services:
  volumes-provisioner:
    image: hasnat/volumes-provisioner
    environment:
      PROVISION_DIRECTORIES: "65534:65534:0755:/var/data/prometheus/data"
    volumes:
      - "./var/data:/var/data"
    network_mode: none

  prometheus:
    image: prom/prometheus:v2.3.2
    ports:
      - "9090:9090"
    depends_on:
      - volumes-provisioner
    volumes:
      - "./var/data/prometheus/data:/prometheus/data"

⁠Build locally
docker build -t volumes-provisioner .
docker run --rm \
-e PROVISION_DIRECTORIES=1000:1000:0755:/var/www \
-v `pwd`/data:/var/www \
volumes-provisioner
ls -dhn data
⁠Notes

Won't work for docker for macos volume mounts

Tag summary

Content type

Image

Digest

sha256:54c8ab887…

Size

2.7 MB

Last updated

about 3 years ago

docker pull hasnat/volumes-provisioner