PHPackages                             glen/docker-secrets-provider - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. glen/docker-secrets-provider

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

glen/docker-secrets-provider
============================

Pimple Docker Secrets ServiceProvider

1.1.0(8y ago)1131MITPHPPHP ^5.3.0 || ^7.0

Since Jan 6Pushed 7y agoCompare

[ Source](https://github.com/glensc/DockerSecretsProvider)[ Packagist](https://packagist.org/packages/glen/docker-secrets-provider)[ RSS](/packages/glen-docker-secrets-provider/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (1)Versions (3)Used By (0)

DockerSecretsProvider
=====================

[](#dockersecretsprovider)

`DockerSecretsProvider` is a [Pimple](https://pimple.symfony.com/) [ServiceProvider](https://pimple.symfony.com/#extending-a-container) to manage sensitive data with [Docker secrets](https://docs.docker.com/engine/swarm/secrets/), mostly useful for [Silex](https://silex.symfony.com/) based applications.

Docker 1.13 provides secrets in swarm mode.

You can use secrets to manage any sensitive data which a Docker container needs at runtime but you don't want to store in the image or in source control, such as:

- Usernames and passwords
- TLS certificates and keys
- SSH keys
- Other important data such as the name of a database or internal server
- Generic strings or binary content (up to 500 kb in size)

Usage
-----

[](#usage)

Create the secret, using `docker` CLI

```
echo -n "This is a secret" | docker secret create my_secret_data -
```

Note the `-n` parameter with echo; this is necessary to suppress the trailing newline character. If you don't do this, your value is not correctly encoded.

Mount it into container, this example is for `docker-compose` or `docker stack deploy`

```
version: "3.1"

services:
  app:
  ...
    secrets:
      - my_secret_data
...
secrets:
  my_secret_data:
    external: true
```

In development mode, you may use [`file:`](https://docs.docker.com/compose/compose-file/#secrets%5D) directive to use secrets without swarm:

```
secrets:
  my_secret_data:
    # for local development, use from local file
    file: my_secret_data.secret
```

Require the library

```
composer require glen/docker-secrets-provider
```

Map the secret in Pimple container

```
$app->register(new DockerSecretsProvider(array(
   'my_secret_data' => 'my.secret',
)));
```

This would make `$app['my.secret']` read as `"This is a secret"`

In case of nested structure (`$app['option']['key']`), the value can be callback, to allow assigning value to sub-keys.

Here's example using [saxulum/saxulum-doctrine-mongodb-odm-provider](https://packagist.org/packages/saxulum/saxulum-doctrine-mongodb-odm-provider):

```
$this->register(new DockerSecretsProvider(array(
    'mongodb' => function ($secretReader, $app) {
        // make copy for later assignment,
        $options = $app['mongodb.options'];

        // make as function to avoid loading secret to memory before it's use is needed
        $app['mongodb.options'] = function () use ($secretReader, $options, $app) {
            $options['options']['password'] = $secretReader();

            return $options;
        };
    },
)));
```

To avoid `Indirect modification of overloaded element`, the value needs to be made copy and assigned again:

```
// yields "Indirect modification of overloaded element" notice:
$app['mongodb.options']['options']['password'] = 'secret';

// workaround for above problem:
$options = $app['mongodb.options'];
$options['options']['password'] = 'secret';
$app['mongodb.options'] = $options;
```

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~94 days

Total

2

Last Release

2950d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/9a706718c13a8fc063e8345357c67190c39e1b02b9d0b6d306806fdb7c49bc17?d=identicon)[glen](/maintainers/glen)

---

Top Contributors

[![glensc](https://avatars.githubusercontent.com/u/199095?v=4)](https://github.com/glensc "glensc (18 commits)")

### Embed Badge

![Health badge](/badges/glen-docker-secrets-provider/health.svg)

```
[![Health](https://phpackages.com/badges/glen-docker-secrets-provider/health.svg)](https://phpackages.com/packages/glen-docker-secrets-provider)
```

###  Alternatives

[ckfinder/ckfinder-laravel-package

CKFinder 3 package for Laravel

159497.2k48](/packages/ckfinder-ckfinder-laravel-package)[jaxon-php/jaxon-core

Jaxon is an open source PHP library for easily creating Ajax web applications

73142.3k25](/packages/jaxon-php-jaxon-core)[ckfinder/ckfinder-symfony-bundle

CKFinder bundle for Symfony

42435.7k](/packages/ckfinder-ckfinder-symfony-bundle)[inpsyde/wp-app-container

DI Container and related tools to be used at website level.

41253.5k](/packages/inpsyde-wp-app-container)[rockettheme/toolbox

RocketTheme Toolbox Library

22526.9k3](/packages/rockettheme-toolbox)[rochamarcelo/cake-pimple-di

A cakephp plugin for dependency injection based on Pimple library

12176.8k](/packages/rochamarcelo-cake-pimple-di)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
