Compare commits

...
Sign in to create a new pull request.

3 commits

Author SHA1 Message Date
Honza Horak
0da1173d6f Update the README.md in the root 2020-02-04 09:12:03 +01:00
Honza Horak
8018a310d2 Remove obsoleted labels 2020-02-04 09:12:01 +01:00
Honza Horak
05ce698812 Update version of the base image 2020-02-03 18:34:19 +01:00
2 changed files with 56 additions and 29 deletions

View file

@ -1,4 +1,4 @@
FROM registry.fedoraproject.org/f31/s2i-core:latest
FROM registry.fedoraproject.org/f30/s2i-core:latest
# Redis image based on Software Collections packages
#
@ -9,7 +9,6 @@ FROM registry.fedoraproject.org/f31/s2i-core:latest
ENV NAME=redis \
VERSION=5 \
RELEASE=1 \
ARCH=x86_64
ENV REDIS_VERSION=$VERSION \
@ -33,8 +32,6 @@ LABEL summary="$SUMMARY" \
com.redhat.component="$NAME" \
name="$FGC/$NAME" \
version="$VERSION" \
release="$RELEASE.$DISTTAG" \
architecture="$ARCH" \
usage="docker run -d --name redis_database -p 6379:6379 $FGC/$NAME" \
maintainer="SoftwareCollections.org <sclorg@redhat.com>"

View file

@ -1,40 +1,36 @@
Redis Docker image
Redis 5 in-memory data structure store container image
====================
This container image includes Dockerfile for Redis 3.2 Docker image.
Users can choose between RHEL and CentOS based images.
This container image includes Redis 5 in-memory data structure store for OpenShift and general usage.
Users can choose between RHEL, CentOS and Fedora based images.
The RHEL images are available in the [Red Hat Container Catalog](https://access.redhat.com/containers/),
the CentOS images are available on [Docker Hub](https://hub.docker.com/r/centos/),
and the Fedora images are available in [Fedora Registry](https://registry.fedoraproject.org/).
The resulting image can be run using [podman](https://github.com/containers/libpod).
Dockerfile for CentOS is called Dockerfile, Dockerfile for RHEL is called
Dockerfile.rhel7.
Note: while the examples in this README are calling `podman`, you can replace any such calls by `docker` with the same arguments
Environment variables and volumes
----------------------------------
Description
-----------
| Variable name | Description |
| :--------------------- | ----------------------------------------- |
| `REDIS_PASSWORD` | Password for the server access |
Redis 5 available as container, is an advanced key-value store.
It is often referred to as a data structure server since keys can contain strings, hashes, lists,
sets and sorted sets. You can run atomic operations on these types, like appending to a string;
incrementing the value in a hash; pushing to a list; computing set intersection, union and difference;
or getting the member with highest ranking in a sorted set. In order to achieve its outstanding
performance, Redis works with an in-memory dataset. Depending on your use case, you can persist
it either by dumping the dataset to disk every once in a while, or by appending each command to a log.
TBD
You can also set the following mount points by passing the `-v /host:/container:Z` flag to Docker.
| Volume mount point | Description |
| :----------------------- | -------------------- |
| `/var/lib/redis/data` | Redis data directory |
**Notice: When mouting a directory from the host into the container, ensure that the mounted
directory has the appropriate permissions and that the owner and group of the directory
matches the user UID or name which is running inside the container.**
Usage
---------------------------------
-----
For this, we will assume that you are using the `rhscl/redis-32-rhel7` image.
For this, we will assume that you are using the `rhel8/redis-5` image.
If you want to set only the mandatory environment variables and not store
the database in a host directory, execute the following command:
```
$ docker run -d --name redis_database -p 6379:6379 rhscl/redis-32-rhel7
$ podman run -d --name redis_database -p 6379:6379 rhel8/redis-5
```
This will create a container named `redis_database`. Port 6379 will be exposed and mapped
@ -47,9 +43,43 @@ For protecting Redis data by a password, pass `REDIS_PASSWORD` environment varia
to the container like this:
```
$ docker run -d --name redis_database -e REDIS_PASSWORD=strongpassword rhscl/redis-32-rhel7
$ podman run -d --name redis_database -e REDIS_PASSWORD=strongpassword rhel8/redis-5
```
**Warning: since Redis is pretty fast an outside user can try up to
150k passwords per second against a good box. This means that you should
use a very strong password otherwise it will be very easy to break.**
Environment variables and volumes
----------------------------------
**`REDIS_PASSWORD`**
Password for the server access
You can also set the following mount points by passing the `-v /host:/container:Z` flag to podman.
**`/var/lib/redis/data`**
Redis data directory
**Notice: When mouting a directory from the host into the container, ensure that the mounted
directory has the appropriate permissions and that the owner and group of the directory
matches the user UID or name which is running inside the container.**
Troubleshooting
---------------
Redis logs into standard output, so the log is available in the container log. The log can be examined by running:
podman logs <container>
See also
--------
Dockerfile and other sources for this container image are available on
https://github.com/sclorg/redis-container.
In that repository you also can find another versions of Python environment Dockerfiles.
Dockerfile for CentOS is called `Dockerfile`, Dockerfile for RHEL7 is called `Dockerfile.rhel7`,
for RHEL8 it's `Dockerfile.rhel8` and the Fedora Dockerfile is called Dockerfile.fedora.