diff --git a/6/README.md b/6/README.md deleted file mode 100644 index 48fb990..0000000 --- a/6/README.md +++ /dev/null @@ -1,329 +0,0 @@ -# About - -This image contains an installation Redis 6.x. - -For more information, see the [Official Image Marketplace Page](https://console.cloud.google.com/marketplace/details/google/redis6). - -Pull command (first install [gcloud](https://cloud.google.com/sdk/downloads)): - -```shell -gcloud docker -- pull marketplace.gcr.io/google/redis6 -``` - -Dockerfile for this image can be found [here](https://github.com/GoogleCloudPlatform/redis-docker/tree/master/6). - -# Table of Contents -* [Using Kubernetes](#using-kubernetes) - * [Running Redis](#running-redis-kubernetes) - * [Starting a Redis instance](#starting-a-redis-instance-kubernetes) - * [Adding persistence](#adding-persistence-kubernetes) - * [Redis CLI](#redis-cli-kubernetes) - * [Connecting to a running Redis container](#connecting-to-a-running-redis-container-kubernetes) - * [Configurations](#configurations-kubernetes) - * [Using configuration volume](#using-configuration-volume-kubernetes) -* [Using Docker](#using-docker) - * [Running Redis](#running-redis-docker) - * [Starting a Redis instance](#starting-a-redis-instance-docker) - * [Adding persistence](#adding-persistence-docker) - * [Redis CLI](#redis-cli-docker) - * [Connecting to a running Redis container](#connecting-to-a-running-redis-container-docker) - * [Configurations](#configurations-docker) - * [Using configuration volume](#using-configuration-volume-docker) -* [References](#references) - * [Ports](#references-ports) - * [Volumes](#references-volumes) - -# Using Kubernetes - -Consult [Marketplace container documentation](https://cloud.google.com/marketplace/docs/marketplace-container) -for additional information about setting up your Kubernetes environment. - -## Running Redis - -### Starting a Redis instance - -Copy the following content to `pod.yaml` file, and run `kubectl create -f pod.yaml`. - -```yaml -apiVersion: v1 -kind: Pod -metadata: - name: some-redis - labels: - name: some-redis -spec: - containers: - - image: marketplace.gcr.io/google/redis6 - name: redis -``` - -Run the following to expose the port. -Depending on your cluster setup, this might expose your service to the -Internet with an external IP address. For more information, consult -[Kubernetes documentation](https://kubernetes.io/docs/concepts/services-networking/connect-applications-service/). - -```shell -kubectl expose pod some-redis --name some-redis-6379 \ - --type LoadBalancer --port 6379 --protocol TCP -``` - -### Adding persistence - -Redis is an in-memory database but does write data to disk periodically for recovery. The location of this dump file can be found at `/data/dump.rdb`. By putting `/data` on to a persistent volume, the data will survive container restarts. - -You can find more about redis persistence on the [redis website](https://redis.io/topics/persistence). - -Copy the following content to `pod.yaml` file, and run `kubectl create -f pod.yaml`. - -```yaml -apiVersion: v1 -kind: Pod -metadata: - name: some-redis - labels: - name: some-redis -spec: - containers: - - image: marketplace.gcr.io/google/redis6 - name: redis - volumeMounts: - - name: redisdata - mountPath: /data - subPath: redisdata - volumes: - - name: redisdata - persistentVolumeClaim: - claimName: redisdata ---- -# Request a persistent volume from the cluster using a Persistent Volume Claim. -kind: PersistentVolumeClaim -apiVersion: v1 -metadata: - name: redisdata - annotations: - volume.alpha.kubernetes.io/storage-class: default -spec: - accessModes: [ReadWriteOnce] - resources: - requests: - storage: 5Gi -``` - -Run the following to expose the port. -Depending on your cluster setup, this might expose your service to the -Internet with an external IP address. For more information, consult -[Kubernetes documentation](https://kubernetes.io/docs/concepts/services-networking/connect-applications-service/). - -```shell -kubectl expose pod some-redis --name some-redis-6379 \ - --type LoadBalancer --port 6379 --protocol TCP -``` - -## Redis CLI - -### Connecting to a running Redis container - -```shell -kubectl exec -it some-redis -- redis-cli -``` - -To test if redis is working we create a key called MY_TEST_KEY. Run the following command to set a test key. - -``` -SET MY_TEST_KEY pass -``` - -Run the following command to verify that the set command above succeeded. This should print out "pass". - -``` -GET MY_TEST_KEY -``` - -## Configurations - -### Using configuration volume - -Redis can be started with a configuration file to customize or tweak how the cluster will run. This file is commonly named `redis.conf`. - -Assume /path/to/your/redis.conf is the configuration file on your local host. - -Create the following `configmap`: - -```shell -kubectl create configmap redisconfig \ - --from-file=/path/to/your/redis.conf -``` - -Copy the following content to `pod.yaml` file, and run `kubectl create -f pod.yaml`. - -```yaml -apiVersion: v1 -kind: Pod -metadata: - name: some-redis - labels: - name: some-redis -spec: - containers: - - image: marketplace.gcr.io/google/redis6 - name: redis - args: - - /etc/redis/redis.conf - volumeMounts: - - name: redisconfig - mountPath: /etc/redis - volumes: - - name: redisconfig - configMap: - name: redisconfig -``` - -Run the following to expose the port. -Depending on your cluster setup, this might expose your service to the -Internet with an external IP address. For more information, consult -[Kubernetes documentation](https://kubernetes.io/docs/concepts/services-networking/connect-applications-service/). - -```shell -kubectl expose pod some-redis --name some-redis-6379 \ - --type LoadBalancer --port 6379 --protocol TCP -``` - -See [Volume reference](#references-volumes) for more details. - -# Using Docker - -Consult [Marketplace container documentation](https://cloud.google.com/marketplace/docs/marketplace-container) -for additional information about setting up your Docker environment. - -## Running Redis - -### Starting a Redis instance - -Use the following content for the `docker-compose.yml` file, then run `docker-compose up`. - -```yaml -version: '2' -services: - redis: - container_name: some-redis - image: marketplace.gcr.io/google/redis6 - ports: - - '6379:6379' -``` - -Or you can use `docker run` directly: - -```shell -docker run \ - --name some-redis \ - -p 6379:6379 \ - -d \ - marketplace.gcr.io/google/redis6 -``` - -### Adding persistence - -Redis is an in-memory database but does write data to disk periodically for recovery. The location of this dump file can be found at `/data/dump.rdb`. By putting `/data` on to a persistent volume, the data will survive container restarts. - -You can find more about redis persistence on the [redis website](https://redis.io/topics/persistence). - -Use the following content for the `docker-compose.yml` file, then run `docker-compose up`. - -```yaml -version: '2' -services: - redis: - container_name: some-redis - image: marketplace.gcr.io/google/redis6 - ports: - - '6379:6379' - volumes: - - /path/to/your/redis/data/directory:/data -``` - -Or you can use `docker run` directly: - -```shell -docker run \ - --name some-redis \ - -p 6379:6379 \ - -v /path/to/your/redis/data/directory:/data \ - -d \ - marketplace.gcr.io/google/redis6 -``` - -## Redis CLI - -### Connecting to a running Redis container - -```shell -docker exec -it some-redis redis-cli -``` - -To test if redis is working we create a key called MY_TEST_KEY. Run the following command to set a test key. - -``` -SET MY_TEST_KEY pass -``` - -Run the following command to verify that the set command above succeeded. This should print out "pass". - -``` -GET MY_TEST_KEY -``` - -## Configurations - -### Using configuration volume - -Redis can be started with a configuration file to customize or tweak how the cluster will run. This file is commonly named `redis.conf`. - -Assume /path/to/your/redis.conf is the configuration file on your local host. - -Use the following content for the `docker-compose.yml` file, then run `docker-compose up`. - -```yaml -version: '2' -services: - redis: - container_name: some-redis - image: marketplace.gcr.io/google/redis6 - command: - - /etc/redis/redis.conf - ports: - - '6379:6379' - volumes: - - /path/to/your/redis.conf:/etc/redis/redis.conf -``` - -Or you can use `docker run` directly: - -```shell -docker run \ - --name some-redis \ - -p 6379:6379 \ - -v /path/to/your/redis.conf:/etc/redis/redis.conf \ - -d \ - marketplace.gcr.io/google/redis6 \ - /etc/redis/redis.conf -``` - -See [Volume reference](#references-volumes) for more details. - -# References - -## Ports - -These are the ports exposed by the container image. - -| **Port** | **Description** | -|:---------|:----------------| -| TCP 6379 | Redis port | - -## Volumes - -These are the filesystem paths used by the container image. - -| **Path** | **Description** | -|:---------|:----------------| -| /data | Location where redis will stores the rdb data | diff --git a/6/README.yaml b/6/README.yaml deleted file mode 100644 index 21a9205..0000000 --- a/6/README.yaml +++ /dev/null @@ -1,122 +0,0 @@ -# Copyright (c) 2019, Google LLC. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# * Neither the name of Google Inc. nor the -# names of its contributors may be used to endorse or promote products -# derived from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -# DISCLAIMED. IN NO EVENT SHALL Google Inc. BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -# Used with http://github.com/GoogleCloudPlatform/runtimes-common/tree/master/docgen -_templates: -- &Image marketplace.gcr.io/google/redis6 -- &PullCommand gcloud docker -- pull marketplace.gcr.io/google/redis6 -- &ServiceArgs - name: redis - image: *Image -- &BaseServerRun - <<: *ServiceArgs - exposedPorts: - - port: 6379 -- &BaseClientRun - name: redis - image: *Image - runType: INTERACTIVE_SHELL -- &BaseExec - execType: INTERACTIVE_SHELL - -overview: - description: |- - This image contains an installation Redis 6.x. - - For more information, see the [Official Image Marketplace Page](https://console.cloud.google.com/marketplace/details/google/redis6). - dockerfileUrl: https://github.com/GoogleCloudPlatform/redis-docker/tree/master/6 - pullCommand: *PullCommand - -taskGroups: - -- title: Running Redis - tasks: - - title: Starting a Redis instance - runtimes: [DOCKER, KUBERNETES] - instructions: - - run: - <<: *BaseServerRun - - title: Adding persistence - runtimes: [DOCKER, KUBERNETES] - description: |- - Redis is an in-memory database but does write data to disk periodically for recovery. The location of this dump file can be found at `/data/dump.rdb`. By putting `/data` on to a persistent volume, the data will survive container restarts. - - You can find more about redis persistence on the [redis website](https://redis.io/topics/persistence). - instructions: - - run: - <<: *BaseServerRun - volumes: - - name: redisdata - path: /data - emptyPersistentVolume: - hostPath: /path/to/your/redis/data/directory - subPath: redisdata - -- title: Redis CLI - tasks: - - title: Connecting to a running Redis container - runtimes: [DOCKER, KUBERNETES] - instructions: - - exec: - <<: *BaseExec - containerFromRun: *BaseServerRun - command: redis-cli - subcommands: - - description: To test if redis is working we create a key called MY_TEST_KEY. Run the following command to set a test key. - command: SET MY_TEST_KEY pass - - description: Run the following command to verify that the set command above succeeded. This should print out "pass". - command: GET MY_TEST_KEY - -- title: Configurations - anchorId: configurations - tasks: - - title: Using configuration volume - runtimes: [DOCKER, KUBERNETES] - instructions: - - description: |- - Redis can be started with a configuration file to customize or tweak how the cluster will run. This file is commonly named `redis.conf`. - - Assume /path/to/your/redis.conf is the configuration file on your local host. - run: - <<: *BaseServerRun - arguments: ["/etc/redis/redis.conf"] - volumes: - - name: redisconfig - path: /etc/redis - singleFile: - hostFile: /path/to/your/redis.conf - - description: >- - See [Volume reference](#references-volumes) for more details. - - -portReference: - ports: - - port: '6379' - description: Redis port - -volumeReference: - volumes: - - path: /data - description: Location where redis will stores the rdb data diff --git a/6/debian11/6.2/Dockerfile b/6/debian11/6.2/Dockerfile index be5ac9a..5433c53 100644 --- a/6/debian11/6.2/Dockerfile +++ b/6/debian11/6.2/Dockerfile @@ -24,7 +24,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ && rm -rf /var/lib/apt/lists/* # add gosu for easy step-down from root -ENV GOSU_VERSION 1.11 +ENV GOSU_VERSION 1.17 ENV GOSU_GPG B42F6819007F00F88E364FD4036A9C25BF357DD4 RUN set -x \ diff --git a/7/README.md b/7/README.md deleted file mode 100644 index 99629b1..0000000 --- a/7/README.md +++ /dev/null @@ -1,329 +0,0 @@ -# About - -This image contains an installation Redis 7.x. - -For more information, see the [Official Image Marketplace Page](https://console.cloud.google.com/marketplace/details/google/redis7). - -Pull command (first install [gcloud](https://cloud.google.com/sdk/downloads)): - -```shell -gcloud docker -- pull marketplace.gcr.io/google/redis7 -``` - -Dockerfile for this image can be found [here](https://github.com/GoogleCloudPlatform/redis-docker/tree/master/6). - -# Table of Contents -* [Using Kubernetes](#using-kubernetes) - * [Running Redis](#running-redis-kubernetes) - * [Starting a Redis instance](#starting-a-redis-instance-kubernetes) - * [Adding persistence](#adding-persistence-kubernetes) - * [Redis CLI](#redis-cli-kubernetes) - * [Connecting to a running Redis container](#connecting-to-a-running-redis-container-kubernetes) - * [Configurations](#configurations-kubernetes) - * [Using configuration volume](#using-configuration-volume-kubernetes) -* [Using Docker](#using-docker) - * [Running Redis](#running-redis-docker) - * [Starting a Redis instance](#starting-a-redis-instance-docker) - * [Adding persistence](#adding-persistence-docker) - * [Redis CLI](#redis-cli-docker) - * [Connecting to a running Redis container](#connecting-to-a-running-redis-container-docker) - * [Configurations](#configurations-docker) - * [Using configuration volume](#using-configuration-volume-docker) -* [References](#references) - * [Ports](#references-ports) - * [Volumes](#references-volumes) - -# Using Kubernetes - -Consult [Marketplace container documentation](https://cloud.google.com/marketplace/docs/marketplace-container) -for additional information about setting up your Kubernetes environment. - -## Running Redis - -### Starting a Redis instance - -Copy the following content to `pod.yaml` file, and run `kubectl create -f pod.yaml`. - -```yaml -apiVersion: v1 -kind: Pod -metadata: - name: some-redis - labels: - name: some-redis -spec: - containers: - - image: marketplace.gcr.io/google/redis7 - name: redis -``` - -Run the following to expose the port. -Depending on your cluster setup, this might expose your service to the -Internet with an external IP address. For more information, consult -[Kubernetes documentation](https://kubernetes.io/docs/concepts/services-networking/connect-applications-service/). - -```shell -kubectl expose pod some-redis --name some-redis-6379 \ - --type LoadBalancer --port 6379 --protocol TCP -``` - -### Adding persistence - -Redis is an in-memory database but does write data to disk periodically for recovery. The location of this dump file can be found at `/data/dump.rdb`. By putting `/data` on to a persistent volume, the data will survive container restarts. - -You can find more about redis persistence on the [redis website](https://redis.io/topics/persistence). - -Copy the following content to `pod.yaml` file, and run `kubectl create -f pod.yaml`. - -```yaml -apiVersion: v1 -kind: Pod -metadata: - name: some-redis - labels: - name: some-redis -spec: - containers: - - image: marketplace.gcr.io/google/redis7 - name: redis - volumeMounts: - - name: redisdata - mountPath: /data - subPath: redisdata - volumes: - - name: redisdata - persistentVolumeClaim: - claimName: redisdata ---- -# Request a persistent volume from the cluster using a Persistent Volume Claim. -kind: PersistentVolumeClaim -apiVersion: v1 -metadata: - name: redisdata - annotations: - volume.alpha.kubernetes.io/storage-class: default -spec: - accessModes: [ReadWriteOnce] - resources: - requests: - storage: 5Gi -``` - -Run the following to expose the port. -Depending on your cluster setup, this might expose your service to the -Internet with an external IP address. For more information, consult -[Kubernetes documentation](https://kubernetes.io/docs/concepts/services-networking/connect-applications-service/). - -```shell -kubectl expose pod some-redis --name some-redis-6379 \ - --type LoadBalancer --port 6379 --protocol TCP -``` - -## Redis CLI - -### Connecting to a running Redis container - -```shell -kubectl exec -it some-redis -- redis-cli -``` - -To test if redis is working we create a key called MY_TEST_KEY. Run the following command to set a test key. - -``` -SET MY_TEST_KEY pass -``` - -Run the following command to verify that the set command above succeeded. This should print out "pass". - -``` -GET MY_TEST_KEY -``` - -## Configurations - -### Using configuration volume - -Redis can be started with a configuration file to customize or tweak how the cluster will run. This file is commonly named `redis.conf`. - -Assume /path/to/your/redis.conf is the configuration file on your local host. - -Create the following `configmap`: - -```shell -kubectl create configmap redisconfig \ - --from-file=/path/to/your/redis.conf -``` - -Copy the following content to `pod.yaml` file, and run `kubectl create -f pod.yaml`. - -```yaml -apiVersion: v1 -kind: Pod -metadata: - name: some-redis - labels: - name: some-redis -spec: - containers: - - image: marketplace.gcr.io/google/redis7 - name: redis - args: - - /etc/redis/redis.conf - volumeMounts: - - name: redisconfig - mountPath: /etc/redis - volumes: - - name: redisconfig - configMap: - name: redisconfig -``` - -Run the following to expose the port. -Depending on your cluster setup, this might expose your service to the -Internet with an external IP address. For more information, consult -[Kubernetes documentation](https://kubernetes.io/docs/concepts/services-networking/connect-applications-service/). - -```shell -kubectl expose pod some-redis --name some-redis-6379 \ - --type LoadBalancer --port 6379 --protocol TCP -``` - -See [Volume reference](#references-volumes) for more details. - -# Using Docker - -Consult [Marketplace container documentation](https://cloud.google.com/marketplace/docs/marketplace-container) -for additional information about setting up your Docker environment. - -## Running Redis - -### Starting a Redis instance - -Use the following content for the `docker-compose.yml` file, then run `docker-compose up`. - -```yaml -version: '2' -services: - redis: - container_name: some-redis - image: marketplace.gcr.io/google/redis7 - ports: - - '6379:6379' -``` - -Or you can use `docker run` directly: - -```shell -docker run \ - --name some-redis \ - -p 6379:6379 \ - -d \ - marketplace.gcr.io/google/redis7 -``` - -### Adding persistence - -Redis is an in-memory database but does write data to disk periodically for recovery. The location of this dump file can be found at `/data/dump.rdb`. By putting `/data` on to a persistent volume, the data will survive container restarts. - -You can find more about redis persistence on the [redis website](https://redis.io/topics/persistence). - -Use the following content for the `docker-compose.yml` file, then run `docker-compose up`. - -```yaml -version: '2' -services: - redis: - container_name: some-redis - image: marketplace.gcr.io/google/redis7 - ports: - - '6379:6379' - volumes: - - /path/to/your/redis/data/directory:/data -``` - -Or you can use `docker run` directly: - -```shell -docker run \ - --name some-redis \ - -p 6379:6379 \ - -v /path/to/your/redis/data/directory:/data \ - -d \ - marketplace.gcr.io/google/redis7 -``` - -## Redis CLI - -### Connecting to a running Redis container - -```shell -docker exec -it some-redis redis-cli -``` - -To test if redis is working we create a key called MY_TEST_KEY. Run the following command to set a test key. - -``` -SET MY_TEST_KEY pass -``` - -Run the following command to verify that the set command above succeeded. This should print out "pass". - -``` -GET MY_TEST_KEY -``` - -## Configurations - -### Using configuration volume - -Redis can be started with a configuration file to customize or tweak how the cluster will run. This file is commonly named `redis.conf`. - -Assume /path/to/your/redis.conf is the configuration file on your local host. - -Use the following content for the `docker-compose.yml` file, then run `docker-compose up`. - -```yaml -version: '2' -services: - redis: - container_name: some-redis - image: marketplace.gcr.io/google/redis7 - command: - - /etc/redis/redis.conf - ports: - - '6379:6379' - volumes: - - /path/to/your/redis.conf:/etc/redis/redis.conf -``` - -Or you can use `docker run` directly: - -```shell -docker run \ - --name some-redis \ - -p 6379:6379 \ - -v /path/to/your/redis.conf:/etc/redis/redis.conf \ - -d \ - marketplace.gcr.io/google/redis7 \ - /etc/redis/redis.conf -``` - -See [Volume reference](#references-volumes) for more details. - -# References - -## Ports - -These are the ports exposed by the container image. - -| **Port** | **Description** | -|:---------|:----------------| -| TCP 6379 | Redis port | - -## Volumes - -These are the filesystem paths used by the container image. - -| **Path** | **Description** | -|:---------|:----------------| -| /data | Location where redis will stores the rdb data | diff --git a/7/README.yaml b/7/README.yaml deleted file mode 100644 index a7b8e15..0000000 --- a/7/README.yaml +++ /dev/null @@ -1,122 +0,0 @@ -# Copyright (c) 2019, Google LLC. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# * Neither the name of Google Inc. nor the -# names of its contributors may be used to endorse or promote products -# derived from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -# DISCLAIMED. IN NO EVENT SHALL Google Inc. BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -# Used with http://github.com/GoogleCloudPlatform/runtimes-common/tree/master/docgen -_templates: -- &Image marketplace.gcr.io/google/redis7 -- &PullCommand gcloud docker -- pull marketplace.gcr.io/google/redis7 -- &ServiceArgs - name: redis - image: *Image -- &BaseServerRun - <<: *ServiceArgs - exposedPorts: - - port: 6379 -- &BaseClientRun - name: redis - image: *Image - runType: INTERACTIVE_SHELL -- &BaseExec - execType: INTERACTIVE_SHELL - -overview: - description: |- - This image contains an installation Redis 7.x. - - For more information, see the [Official Image Marketplace Page](https://console.cloud.google.com/marketplace/details/google/redis7). - dockerfileUrl: https://github.com/GoogleCloudPlatform/redis-docker/tree/master/6 - pullCommand: *PullCommand - -taskGroups: - -- title: Running Redis - tasks: - - title: Starting a Redis instance - runtimes: [DOCKER, KUBERNETES] - instructions: - - run: - <<: *BaseServerRun - - title: Adding persistence - runtimes: [DOCKER, KUBERNETES] - description: |- - Redis is an in-memory database but does write data to disk periodically for recovery. The location of this dump file can be found at `/data/dump.rdb`. By putting `/data` on to a persistent volume, the data will survive container restarts. - - You can find more about redis persistence on the [redis website](https://redis.io/topics/persistence). - instructions: - - run: - <<: *BaseServerRun - volumes: - - name: redisdata - path: /data - emptyPersistentVolume: - hostPath: /path/to/your/redis/data/directory - subPath: redisdata - -- title: Redis CLI - tasks: - - title: Connecting to a running Redis container - runtimes: [DOCKER, KUBERNETES] - instructions: - - exec: - <<: *BaseExec - containerFromRun: *BaseServerRun - command: redis-cli - subcommands: - - description: To test if redis is working we create a key called MY_TEST_KEY. Run the following command to set a test key. - command: SET MY_TEST_KEY pass - - description: Run the following command to verify that the set command above succeeded. This should print out "pass". - command: GET MY_TEST_KEY - -- title: Configurations - anchorId: configurations - tasks: - - title: Using configuration volume - runtimes: [DOCKER, KUBERNETES] - instructions: - - description: |- - Redis can be started with a configuration file to customize or tweak how the cluster will run. This file is commonly named `redis.conf`. - - Assume /path/to/your/redis.conf is the configuration file on your local host. - run: - <<: *BaseServerRun - arguments: ["/etc/redis/redis.conf"] - volumes: - - name: redisconfig - path: /etc/redis - singleFile: - hostFile: /path/to/your/redis.conf - - description: >- - See [Volume reference](#references-volumes) for more details. - - -portReference: - ports: - - port: '6379' - description: Redis port - -volumeReference: - volumes: - - path: /data - description: Location where redis will stores the rdb data diff --git a/7/debian11/7.2/Dockerfile b/7/debian11/7.2/Dockerfile index 1fe553a..72ed939 100644 --- a/7/debian11/7.2/Dockerfile +++ b/7/debian11/7.2/Dockerfile @@ -1,5 +1,24 @@ +FROM marketplace.gcr.io/google/c2d-debian11 as ospo + +# Download Licenses and restricted source-code +COPY components.csv /components.csv +COPY source_code.txt /source_code.txt + +RUN apt update && apt -y install ca-certificates + +RUN curl -o /download-licenses.sh -L https://raw.githubusercontent.com/GoogleCloudPlatform/click-to-deploy/master/scripts/download-licenses.sh \ + && curl -o /download-ref-repos.sh -L https://raw.githubusercontent.com/GoogleCloudPlatform/click-to-deploy/master/scripts/download-ref-repos.sh \ + && chmod +x /download-licenses.sh \ + && chmod +x /download-ref-repos.sh + +RUN mkdir -p /usr/src/licenses \ + && /download-licenses.sh /components.csv /usr/src/licenses \ + && /download-ref-repos.sh /source_code.txt /usr/src + FROM marketplace.gcr.io/google/c2d-debian11 +COPY --from=ospo /usr/src /usr/src + # Get the list of packages from the base image. # add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added @@ -24,7 +43,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ && rm -rf /var/lib/apt/lists/* # add gosu for easy step-down from root -ENV GOSU_VERSION 1.11 +ENV GOSU_VERSION 1.17 ENV GOSU_GPG B42F6819007F00F88E364FD4036A9C25BF357DD4 RUN set -x \ diff --git a/7/debian11/7.2/components.csv b/7/debian11/7.2/components.csv new file mode 100644 index 0000000..4c00b28 --- /dev/null +++ b/7/debian11/7.2/components.csv @@ -0,0 +1,5 @@ +github.com_moby_sys_user;https://rawhubusercontent.com/moby/sys/master/LICENSE +github.com_tianon_gosu;https://github.com/tianon/gosu/blob/master/LICENSE +golang.org_x_sys;https://go.googlesource.com/sys +redis;https://github.com/redis/redis/blob/unstable/COPYING +stdlib;https://pkg.go.dev/github.com/radisvaliullin/test-golang/stdlib?tab=licenses \ No newline at end of file diff --git a/7/debian11/7.2/source_code.txt b/7/debian11/7.2/source_code.txt new file mode 100644 index 0000000..1525cbf --- /dev/null +++ b/7/debian11/7.2/source_code.txt @@ -0,0 +1,5 @@ +https://github.com//moby/sys +https://github.com/tianon/gosu +https://go.googlesource.com/sys +https://github.com/redis/redis +https://pkg.go.dev/github.com/radisvaliullin/test-golang/stdlib?tab=licenses \ No newline at end of file diff --git a/exporter/Dockerfile b/exporter/Dockerfile index a668fb8..5864797 100644 --- a/exporter/Dockerfile +++ b/exporter/Dockerfile @@ -1,15 +1,13 @@ FROM marketplace.gcr.io/google/c2d-debian11 -ENV EXPORTER_VERSION 1.54.0 +ENV EXPORTER_VERSION 1.58.0 -ENV GOLANG_VERSION 1.21.1 +ENV GOLANG_VERSION 1.20 # Install Dependencies RUN apt-get update -y && \ - apt-get install -y --no-install-recommends \ - curl \ - git \ - && rm -rf /var/lib/apt/lists/* + apt-get install -y --no-install-recommends ca-certificates curl git && \ + rm -rf /var/lib/apt/lists/* # Download and Extract go binaries RUN curl -o go.tar.gz https://dl.google.com/go/go${GOLANG_VERSION}.linux-amd64.tar.gz \ diff --git a/templates/exporter/Dockerfile.template b/templates/exporter/Dockerfile.template index 0863f4f..1adf60d 100644 --- a/templates/exporter/Dockerfile.template +++ b/templates/exporter/Dockerfile.template @@ -9,10 +9,8 @@ ENV GOLANG_VERSION {{ $golang.Version }} # Install Dependencies RUN apt-get update -y && \ - apt-get install -y --no-install-recommends \ - curl \ - git \ - && rm -rf /var/lib/apt/lists/* + apt-get install -y --no-install-recommends ca-certificates curl git && \ + rm -rf /var/lib/apt/lists/* # Download and Extract go binaries RUN curl -o go.tar.gz https://dl.google.com/go/go${GOLANG_VERSION}.linux-amd64.tar.gz \ diff --git a/templates/redis7/Dockerfile.template b/templates/redis7/Dockerfile.template index e8ee597..f56839a 100644 --- a/templates/redis7/Dockerfile.template +++ b/templates/redis7/Dockerfile.template @@ -1,5 +1,24 @@ +FROM {{ .From }} as ospo + +# Download Licenses and restricted source-code +COPY components.csv /components.csv +COPY source_code.txt /source_code.txt + +RUN apt update && apt -y install ca-certificates + +RUN curl -o /download-licenses.sh -L https://raw.githubusercontent.com/GoogleCloudPlatform/click-to-deploy/master/scripts/download-licenses.sh \ + && curl -o /download-ref-repos.sh -L https://raw.githubusercontent.com/GoogleCloudPlatform/click-to-deploy/master/scripts/download-ref-repos.sh \ + && chmod +x /download-licenses.sh \ + && chmod +x /download-ref-repos.sh + +RUN mkdir -p /usr/src/licenses \ + && /download-licenses.sh /components.csv /usr/src/licenses \ + && /download-ref-repos.sh /source_code.txt /usr/src + FROM {{ .From }} +COPY --from=ospo /usr/src /usr/src + # Get the list of packages from the base image. {{- $gosu := index .Packages "gosu" }} {{- $redis := index .Packages "redis" }} diff --git a/templates/redis7/components.csv b/templates/redis7/components.csv new file mode 100644 index 0000000..4c00b28 --- /dev/null +++ b/templates/redis7/components.csv @@ -0,0 +1,5 @@ +github.com_moby_sys_user;https://rawhubusercontent.com/moby/sys/master/LICENSE +github.com_tianon_gosu;https://github.com/tianon/gosu/blob/master/LICENSE +golang.org_x_sys;https://go.googlesource.com/sys +redis;https://github.com/redis/redis/blob/unstable/COPYING +stdlib;https://pkg.go.dev/github.com/radisvaliullin/test-golang/stdlib?tab=licenses \ No newline at end of file diff --git a/templates/redis7/source_code.txt b/templates/redis7/source_code.txt new file mode 100644 index 0000000..1525cbf --- /dev/null +++ b/templates/redis7/source_code.txt @@ -0,0 +1,5 @@ +https://github.com//moby/sys +https://github.com/tianon/gosu +https://go.googlesource.com/sys +https://github.com/redis/redis +https://pkg.go.dev/github.com/radisvaliullin/test-golang/stdlib?tab=licenses \ No newline at end of file diff --git a/versions.yaml b/versions.yaml index b37c46c..f15ee1d 100644 --- a/versions.yaml +++ b/versions.yaml @@ -1,4 +1,4 @@ -# Copyright 2023 Google LLC +# Copyright 2024 Google LLC # # All rights reserved. # @@ -35,7 +35,7 @@ versions: packages: gosu: gpg: B42F6819007F00F88E364FD4036A9C25BF357DD4 - version: '1.11' + version: '1.17' redis: version: 7.2.1 repo: redis7 @@ -55,7 +55,7 @@ versions: packages: gosu: gpg: B42F6819007F00F88E364FD4036A9C25BF357DD4 - version: '1.11' + version: '1.17' redis: version: 6.2.13 repo: redis6 @@ -74,13 +74,14 @@ versions: from: marketplace.gcr.io/google/c2d-debian11 packages: golang: - version: '1.21.1' + version: '1.20' redis_exporter: - version: 1.54.0 + version: 1.58.0 repo: redis-exporter1 tags: - - 1.54.0 - - '1.54' + - 1.58.0 + - '1.58' - '1' - latest templateSubDir: exporter +