From a7503ce3f3cfcbf5d855964495b1a20bc7db38a2 Mon Sep 17 00:00:00 2001 From: Thor Erik Lie Date: Sun, 5 Mar 2017 15:06:22 +0100 Subject: [PATCH] Add Minio container Minio is an s3 compatible server written in go. --- docker-compose.yml | 15 ++++++++++ docs/_settings/content/documentation/index.md | 27 +++++++++++++++++ docs/_settings/content/introduction/index.md | 1 + minio/Dockerfile | 5 ++++ workspace/Dockerfile | 18 +++++++++++- workspace/mc/config.json | 29 +++++++++++++++++++ 6 files changed, 94 insertions(+), 1 deletion(-) create mode 100644 minio/Dockerfile create mode 100644 workspace/mc/config.json diff --git a/docker-compose.yml b/docker-compose.yml index 67af2244..91e689c6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -29,6 +29,7 @@ services: - INSTALL_LARAVEL_ENVOY=false - INSTALL_DEPLOYER=false - INSTALL_LINUXBREW=false + - INSTALL_MC=false - PUID=1000 - PGID=1000 - NODE_VERSION=stable @@ -120,6 +121,18 @@ services: links: - workspace +### Minio Container ######################################### + + minio: + build: ./minio + volumes: + - minio:/export + ports: + - "9000:9000" + environment: + MINIO_ACCESS_KEY: access + MINIO_SECRET_KEY: secretkey + ### MySQL Container ######################################### mysql: @@ -354,6 +367,8 @@ volumes: driver: "local" mongo: driver: "local" + minio: + driver: "local" rethinkdb: driver: "local" phpmyadmin: diff --git a/docs/_settings/content/documentation/index.md b/docs/_settings/content/documentation/index.md index 3494b1a1..f8785f81 100644 --- a/docs/_settings/content/documentation/index.md +++ b/docs/_settings/content/documentation/index.md @@ -850,8 +850,35 @@ docker-compose up -d rethinkdb - set the `DB_DATABASE` to `database`. +
+ +## Use Minio +1 - Configure Minio: + - On the workspace container, change `INSTALL_MC` to true to get the client + - Set `MINIO_ACCESS_KEY` and `MINIO_ACCESS_SECRET` if you wish to set proper keys +2 - Run the Minio Container (`minio`) with the `docker-compose up` command. Example: + +```bash +docker-compose up -d minio +``` + +3 - Open your browser and visit the localhost on port **9000** at the following URL: `http://localhost:9000` + +4 - Create a bucket either through the webui or using the mc client: + ```bash + mc mb minio/bucket + ``` + +5 - When configuring your other clients use the following details: + ``` + S3_HOST=http://minio + S3_KEY=access + S3_SECRET=secretkey + S3_REGION=us-east-1 + S3_BUCKET=bucket + ```
diff --git a/docs/_settings/content/introduction/index.md b/docs/_settings/content/introduction/index.md index 850796c0..463bf0b1 100644 --- a/docs/_settings/content/introduction/index.md +++ b/docs/_settings/content/introduction/index.md @@ -165,6 +165,7 @@ What's better than a **Demo Video**: - PgAdmin - ElasticSearch - Selenium + - Minio - Workspace - PHP7-CLI - Composer diff --git a/minio/Dockerfile b/minio/Dockerfile new file mode 100644 index 00000000..88a75426 --- /dev/null +++ b/minio/Dockerfile @@ -0,0 +1,5 @@ +FROM minio/minio + +MAINTAINER Thor Erik Lie + +ENTRYPOINT ["minio", "server", "/export"] diff --git a/workspace/Dockerfile b/workspace/Dockerfile index 39b0996f..d3ab702e 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -113,7 +113,7 @@ RUN echo "" >> ~/.bashrc && \ echo "# Load Custom Aliases" >> ~/.bashrc && \ echo "source /home/laradock/aliases.sh" >> ~/.bashrc && \ echo "" >> ~/.bashrc - + USER root RUN echo "" >> ~/.bashrc && \ echo "# Load Custom Aliases" >> ~/.bashrc && \ @@ -374,6 +374,22 @@ RUN if [ ${INSTALL_LINUXBREW} = true ]; then \ echo 'export LD_LIBRARY_PATH="$LINUXBREWHOME/lib64:$LINUXBREWHOME/lib:$LD_LIBRARY_PATH"' >> ~/.bashrc \ ;fi +##################################### +# Minio: +##################################### +USER root +ARG INSTALL_MC=false +ENV INSTALL_MC ${INSTALL_MC} + +COPY mc/config.json /root/.mc/config.json + +RUN if [ ${INSTALL_MC} = true ]; then\ + curl -fsSL -o /usr/local/bin/mc https://dl.minio.io/client/mc/release/linux-amd64/mc && \ + chmod +x /usr/local/bin/mc \ +;fi + +USER laradock + # #-------------------------------------------------------------------------- # Final Touch diff --git a/workspace/mc/config.json b/workspace/mc/config.json new file mode 100644 index 00000000..706c7c12 --- /dev/null +++ b/workspace/mc/config.json @@ -0,0 +1,29 @@ +{ + "version": "8", + "hosts": { + "gcs": { + "url": "https://storage.googleapis.com", + "accessKey": "YOUR-ACCESS-KEY-HERE", + "secretKey": "YOUR-SECRET-KEY-HERE", + "api": "S3v2" + }, + "minio": { + "url": "http://minio:9000", + "accessKey": "access", + "secretKey": "secretkey", + "api": "S3v4" + }, + "play": { + "url": "https://play.minio.io:9000", + "accessKey": "Q3AM3UQ867SPQQA43P2F", + "secretKey": "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG", + "api": "S3v4" + }, + "s3": { + "url": "https://s3.amazonaws.com", + "accessKey": "YOUR-ACCESS-KEY-HERE", + "secretKey": "YOUR-SECRET-KEY-HERE", + "api": "S3v4" + } + } +}