mirror of
https://github.com/bitnami/containers.git
synced 2026-03-01 06:57:49 +08:00
3.3.8-r0 release
Initial release version 3.3.8
This commit is contained in:
29
bitnami/etcd/3/Dockerfile
Normal file
29
bitnami/etcd/3/Dockerfile
Normal file
@@ -0,0 +1,29 @@
|
||||
FROM bitnami/minideb:jessie as buildenv
|
||||
|
||||
RUN install_packages ca-certificates wget
|
||||
RUN wget -nc -P /tmp/bitnami/pkg/cache/ https://downloads.bitnami.com/files/stacksmith/etcd-3.3.8-0-linux-x64-debian-8.tar.gz && \
|
||||
echo "06314969d3cbb8e01ba02ff30b97eed9a260651c77dd450154ad672ebd864e70 /tmp/bitnami/pkg/cache/etcd-3.3.8-0-linux-x64-debian-8.tar.gz" | sha256sum -c - && \
|
||||
tar -zxf /tmp/bitnami/pkg/cache/etcd-3.3.8-0-linux-x64-debian-8.tar.gz -P --transform 's|^[^/]*/files|/opt/bitnami|' --wildcards '*/files' && \
|
||||
rm -rf /tmp/bitnami/pkg/cache/etcd-3.3.8-0-linux-x64-debian-8.tar.gz
|
||||
|
||||
##################
|
||||
|
||||
FROM bitnami/minideb:jessie
|
||||
LABEL maintainer "Bitnami <containers@bitnami.com>"
|
||||
|
||||
COPY --from=buildenv /opt/bitnami/etcd /opt/bitnami/etcd
|
||||
ENV BITNAMI_APP_NAME="etcd" \
|
||||
BITNAMI_IMAGE_VERSION="3.3.8-r0" \
|
||||
ETCD_ADVERTISE_CLIENT_URLS="http://127.0.0.1:2379" \
|
||||
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379" \
|
||||
PATH="/opt/bitnami/etcd/bin:$PATH"
|
||||
|
||||
RUN chmod g+rwX /opt/bitnami/etcd
|
||||
|
||||
EXPOSE 2379 2380
|
||||
|
||||
COPY rootfs /
|
||||
WORKDIR /opt/bitnami/etcd
|
||||
USER 1001
|
||||
ENTRYPOINT ["/entrypoint.sh"]
|
||||
CMD ["etcd"]
|
||||
12
bitnami/etcd/3/docker-compose.yml
Normal file
12
bitnami/etcd/3/docker-compose.yml
Normal file
@@ -0,0 +1,12 @@
|
||||
version: '2'
|
||||
|
||||
services:
|
||||
etcd:
|
||||
image: bitnami/etcd:3
|
||||
environment:
|
||||
- ALLOW_NONE_AUTHENTICATION=yes
|
||||
volumes:
|
||||
- etcd_data:/bitnami
|
||||
volumes:
|
||||
etcd_data:
|
||||
driver: local
|
||||
39
bitnami/etcd/3/rootfs/entrypoint.sh
Executable file
39
bitnami/etcd/3/rootfs/entrypoint.sh
Executable file
@@ -0,0 +1,39 @@
|
||||
#!/bin/bash
|
||||
|
||||
##
|
||||
## @brief Helper function to show an error when ETCD_ROOT_PASSWORD does not enable the authentication
|
||||
## param $1 Input name
|
||||
##
|
||||
authentication_enabled_error() {
|
||||
echo "The $1 environment variable does not enable authentication. Set the environment variable ALLOW_NONE_AUTHENTICAION=yes to allow the container to be started without authentication. This is recommended only for development."
|
||||
exit 1
|
||||
}
|
||||
|
||||
##
|
||||
## @brief Helper function to show a warning when the ALLOW_NONE_AUTHENTICATION flag is enabled
|
||||
##
|
||||
authentication_enabled_warn() {
|
||||
echo "You set the environment variable ALLOW_NONE_AUTHENTICATION=${ALLOW_NONE_AUTHENTICATION}. For safety reasons, do not use this flag in a production environment."
|
||||
}
|
||||
|
||||
|
||||
# Validate authentication
|
||||
if [[ "$ALLOW_NONE_AUTHENTICATION" =~ ^(yes|Yes|YES)$ ]]; then
|
||||
authentication_enabled_warn
|
||||
elif [[ -z "$ETCD_ROOT_PASSWORD" ]]; then
|
||||
authentication_enabled_error ETCD_ROOT_PASSWORD
|
||||
fi
|
||||
|
||||
# Validate authentication
|
||||
if [[ ! -z "$ETCD_ROOT_PASSWORD" ]]; then
|
||||
echo "==> Enabling etcd authentication..."
|
||||
start-stop-daemon -S --exec /opt/bitnami/etcd/bin/etcd -d /opt/bitnami/etcd/ -b
|
||||
sleep 3
|
||||
echo "$ETCD_ROOT_PASSWORD" | etcdctl user add root
|
||||
etcdctl auth enable
|
||||
etcdctl -u root:"$ETCD_ROOT_PASSWORD" role revoke guest -path '/*' --readwrite
|
||||
start-stop-daemon -K --exec /opt/bitnami/etcd/bin/etcd
|
||||
fi
|
||||
|
||||
|
||||
exec "$@"
|
||||
@@ -1,2 +1,211 @@
|
||||
# bitnami-docker-etcd
|
||||
Bitnami etcd Docker Image
|
||||
[](https://circleci.com/gh/bitnami/bitnami-docker-etcd/tree/master)
|
||||
|
||||
# What is etcd?
|
||||
|
||||
> etcd is a distributed key-value store designed to securely store data across a cluster. etcd is widely used in production on account of its reliability, fault-tolerance and ease of use.
|
||||
|
||||
[https://coreos.com/etcd/](https://coreos.com/etcd/)
|
||||
|
||||
# TL;DR;
|
||||
|
||||
```bash
|
||||
$ docker run -it --name etcd bitnami/etcd
|
||||
```
|
||||
|
||||
## Docker Compose
|
||||
|
||||
```bash
|
||||
$ curl -LO https://raw.githubusercontent.com/bitnami/bitnami-docker-etcd/master/docker-compose.yml
|
||||
$ docker-compose up
|
||||
```
|
||||
|
||||
# Why use Bitnami Images?
|
||||
|
||||
* Bitnami closely tracks upstream source changes and promptly publishes new versions of this image using our automated systems.
|
||||
* With Bitnami images the latest bug fixes and features are available as soon as possible.
|
||||
* Bitnami containers, virtual machines and cloud images use the same components and configuration approach - making it easy to switch between formats based on your project needs.
|
||||
* Bitnami images are built on CircleCI and automatically pushed to the Docker Hub.
|
||||
* All our images are based on [minideb](https://github.com/bitnami/minideb) a minimalist Debian based container image which gives you a small base container image and the familiarity of a leading linux distribution.
|
||||
|
||||
# Supported tags and respective `Dockerfile` links
|
||||
|
||||
* [`3`, `3.3.8-r0`, `latest` (3/Dockerfile)](https://github.com/bitnami/bitnami-docker-etcd/blob/3.3.8-r0/3/Dockerfile)
|
||||
* [`3-ol-7`, `0.0.0-ol-7-r0` (3/ol-7/Dockerfile)](https://github.com/bitnami/bitnami-docker-etcd/blob/0.0.0-ol-7-r0/3/ol-7/Dockerfile)
|
||||
|
||||
Subscribe to project updates by watching the [bitnami/etcd GitHub repo](https://github.com/bitnami/bitnami-docker-etcd).
|
||||
|
||||
# Prerequisites
|
||||
|
||||
To run this application you need [Docker Engine](https://www.docker.com/products/docker-engine) >= `1.10.0`. [Docker Compose](https://www.docker.com/products/docker-compose) is recommended with a version `1.6.0` or later.
|
||||
|
||||
# Get this image
|
||||
|
||||
The recommended way to get the Bitnami etcd Docker Image is to pull the prebuilt image from the [Docker Hub Registry](https://hub.docker.com/r/bitnami/etcd).
|
||||
|
||||
```bash
|
||||
$ docker pull bitnami/etcd:latest
|
||||
```
|
||||
|
||||
To use a specific version, you can pull a versioned tag. You can view the
|
||||
[list of available versions](https://hub.docker.com/r/bitnami/etcd/tags/)
|
||||
in the Docker Hub Registry.
|
||||
|
||||
```bash
|
||||
$ docker pull bitnami/etcd:[TAG]
|
||||
```
|
||||
|
||||
If you wish, you can also build the image yourself.
|
||||
|
||||
```bash
|
||||
$ docker build -t bitnami/etcd:latest https://github.com/bitnami/bitnami-docker-nginx.git
|
||||
```
|
||||
|
||||
# Connecting to other containers
|
||||
|
||||
Using [Docker container networking](https://docs.docker.com/engine/userguide/networking/), a etcd server running inside a container can easily be accessed by your application containers using a etcd client.
|
||||
|
||||
Containers attached to the same network can communicate with each other using the container name as the hostname.
|
||||
|
||||
## Using the Command Line
|
||||
|
||||
In this example, we will create a etcd client instance that will connect to the server instance that is running on the same docker network as the client.
|
||||
|
||||
### Step 1: Create a network
|
||||
|
||||
```bash
|
||||
$ docker network create app-tier --driver bridge
|
||||
```
|
||||
|
||||
### Step 2: Launch the etcd server instance
|
||||
|
||||
Use the `--network app-tier` argument to the `docker run` command to attach the etcd container to the `app-tier` network.
|
||||
|
||||
```bash
|
||||
$ docker run -d --name etcd-server \
|
||||
--network app-tier \
|
||||
--publish 2379:2379 \
|
||||
--publish 2380:2380 \
|
||||
--env ALLOW_NONE_AUTHENTICATION=yes \
|
||||
--env ETCD_ADVERTISE_CLIENT_URLS=http://etcd-server:2379 \
|
||||
bitnami/etcd:latest
|
||||
```
|
||||
|
||||
### Step 3: Launch your etcd client instance
|
||||
|
||||
Finally we create a new container instance to launch the etcd client and connect to the server created in the previous step:
|
||||
|
||||
```bash
|
||||
$ docker run -it --rm \
|
||||
--network app-tier \
|
||||
--env ALLOW_NONE_AUTHENTICATION=yes \
|
||||
bitnami/etcd:latest etcdctl --endpoints http://etcd-server:2379 set /message Hello
|
||||
```
|
||||
|
||||
## Using Docker Compose
|
||||
|
||||
When not specified, Docker Compose automatically sets up a new network and attaches all deployed services to that network. However, we will explicitly define a new `bridge` network named `app-tier`. In this example we assume that you want to connect to the etcd server from your own custom application image which is identified in the following snippet by the service name `myapp`.
|
||||
|
||||
```yaml
|
||||
version: '2'
|
||||
|
||||
networks:
|
||||
app-tier:
|
||||
driver: bridge
|
||||
|
||||
services:
|
||||
etcd:
|
||||
image: 'bitnami/etcd:latest'
|
||||
environment:
|
||||
- ALLOW_NONE_AUTHENTICATION=yes
|
||||
- ETCD_ADVERTISE_CLIENT_URLS=http://etcd:2379
|
||||
ports:
|
||||
- 2379:2379
|
||||
- 2380:2380
|
||||
networks:
|
||||
- app-tier
|
||||
myapp:
|
||||
image: 'YOUR_APPLICATION_IMAGE'
|
||||
networks:
|
||||
- app-tier
|
||||
```
|
||||
|
||||
> **IMPORTANT**:
|
||||
>
|
||||
> 1. Please update the placeholder `YOUR_APPLICATION_IMAGE` in the above snippet with your application image
|
||||
> 2. In your application container, use the hostname `etcd` to connect to the etcd server
|
||||
|
||||
Launch the containers using:
|
||||
|
||||
```bash
|
||||
$ docker-compose up -d
|
||||
```
|
||||
|
||||
# Configuration
|
||||
|
||||
The configuration can easily be setup by mounting your own configuration file on the directory `/opt/bitnami/etcd/conf`:
|
||||
|
||||
```
|
||||
docker run --name etcd -v /path/to/etcd.conf.yml:/opt/bitnami/etcd/conf/etcd.conf.yml bitnami/etcd:latest
|
||||
```
|
||||
|
||||
After that, your configuration will be taken into account in the server's behaviour.
|
||||
|
||||
Using Docker Compose:
|
||||
|
||||
```yaml
|
||||
version: '2'
|
||||
|
||||
services:
|
||||
etcd:
|
||||
image: bitnami/etcd:latest
|
||||
environment:
|
||||
- ALLOW_NONE_AUTHENTICATION=yes
|
||||
- ETCD_ADVERTISE_CLIENT_URLS=http://etcd:2379
|
||||
ports:
|
||||
- '2379:2379'
|
||||
- '2380:2380'
|
||||
volumes:
|
||||
- /path/to/etcd.conf.yml:/opt/bitnami/etcd/conf/etcd.conf.yml
|
||||
```
|
||||
|
||||
You can find a sample configuration file on this [link](https://github.com/coreos/etcd/blob/master/etcd.conf.yml.sample)
|
||||
|
||||
Apart from providing your custom configuration file, you can also modify the server behavior via configuration flags exposed as environment variables.
|
||||
|
||||
For example if you want to modify the flag `--my-flag`, you will need to set the `ETCD_MY_FLAG` environment variable.
|
||||
|
||||
The previous rule applies to all [etcd flags](https://coreos.com/etcd/docs/latest/op-guide/configuration.html).
|
||||
|
||||
# Further documentation
|
||||
|
||||
For further documentation, please check [etcd documentation](https://coreos.com/etcd/docs/latest/) or its [GitHub repository](https://github.com/coreos/etcd)
|
||||
|
||||
# Contributing
|
||||
|
||||
We'd love for you to contribute to this container. You can request new features by creating an [issue](https://github.com/bitnami/bitnami-docker-etcd/issues), or submit a [pull request](https://github.com/bitnami/bitnami-docker-etcd/pulls) with your contribution.
|
||||
|
||||
# Issues
|
||||
|
||||
If you encountered a problem running this container, you can file an [issue](https://github.com/bitnami/bitnami-docker-etcd/issues). For us to provide better support, be sure to include the following information in your issue:
|
||||
|
||||
- Host OS and version
|
||||
- Docker version (`docker version`)
|
||||
- Output of `docker info`
|
||||
- Version of this container
|
||||
- The command you used to run the container, and any relevant output you saw (masking any sensitive information)
|
||||
|
||||
# License
|
||||
|
||||
Copyright 2018 Bitnami
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
||||
65
bitnami/etcd/circle.yml
Normal file
65
bitnami/etcd/circle.yml
Normal file
@@ -0,0 +1,65 @@
|
||||
version: 2
|
||||
jobs:
|
||||
build:
|
||||
working_directory: /workdir
|
||||
docker:
|
||||
- image: docker:17.06.0-ce-git
|
||||
environment:
|
||||
RELEASE_SERIES_LIST: "3"
|
||||
LATEST_STABLE: "3"
|
||||
DISTRIBUTIONS_LIST: "debian-8,ol-7"
|
||||
IMAGE_NAME: etcd
|
||||
DOCKER_PROJECT: bitnami
|
||||
QUAY_PROJECT: bitnami
|
||||
GCLOUD_PROJECT: bitnami-containers
|
||||
AZURE_PROJECT: bitnami
|
||||
|
||||
steps:
|
||||
- checkout
|
||||
- setup_remote_docker:
|
||||
version: 17.06.0-ce
|
||||
- run:
|
||||
name: Upgrade system packages (workaround - https://github.com/docker-library/docker/issues/72)
|
||||
command: |
|
||||
apk upgrade --no-cache
|
||||
- run:
|
||||
name: Install dependencies
|
||||
command: |
|
||||
apk add --no-cache curl bash coreutils
|
||||
- run:
|
||||
name: Docker info
|
||||
command: |
|
||||
docker version
|
||||
docker info
|
||||
- restore_cache:
|
||||
keys:
|
||||
- cache-{{ .Branch }}
|
||||
paths:
|
||||
- /cache/layers.tar
|
||||
- run:
|
||||
name: Build docker image
|
||||
command: |
|
||||
curl -sL https://raw.githubusercontent.com/bitnami/test-infra/master/circle/docker-image-test.sh | bash -
|
||||
- save_cache:
|
||||
key: cache-{{ .Branch }}-{{ epoch }}
|
||||
paths:
|
||||
- /cache/layers.tar
|
||||
- deploy:
|
||||
name: Publish docker image
|
||||
command: |
|
||||
if [ -n "${CIRCLE_TAG}" ]; then
|
||||
curl -sL https://raw.githubusercontent.com/bitnami/test-infra/master/circle/docker-release-image.sh | bash -
|
||||
elif [ "${CIRCLE_BRANCH}" == "master" ]; then
|
||||
curl -sL https://raw.githubusercontent.com/bitnami/test-infra/master/circle/docker-development-image.sh | bash -
|
||||
fi
|
||||
|
||||
workflows:
|
||||
version: 2
|
||||
build-and-deploy:
|
||||
jobs:
|
||||
- build:
|
||||
filters:
|
||||
branches:
|
||||
only: /.*/
|
||||
tags:
|
||||
only: /^.*(?<!-rhel-7)-r[0-9]+$/
|
||||
Reference in New Issue
Block a user