summaryrefslogtreecommitdiff
path: root/docker
diff options
context:
space:
mode:
authorMichael Christen <Orbiter@users.noreply.github.com>2025-06-19 18:11:09 +0200
committerGitHub <noreply@github.com>2025-06-19 18:11:09 +0200
commit09ad31b654b33abea81905b6fc96919524b0b459 (patch)
tree3db2421173be4d956f72a1fc0c2ff9aa96035892 /docker
parent087d924e95e6064a35cc7a219cb5143807698d96 (diff)
parent84bb610f4be832875898af4c4a9884e5d551c6d4 (diff)
Merge pull request #698 from MisterX2000/master
Automate Docker Build Process with Multiarch Support (and GitHub Release action)
Diffstat (limited to 'docker')
-rw-r--r--docker/DockerImageTags.md57
-rw-r--r--docker/Dockerfile35
-rw-r--r--docker/Dockerfile.alpine134
-rw-r--r--docker/README.md215
-rw-r--r--docker/Readme.md151
5 files changed, 329 insertions, 263 deletions
diff --git a/docker/DockerImageTags.md b/docker/DockerImageTags.md
new file mode 100644
index 000000000..cf8b8d9e7
--- /dev/null
+++ b/docker/DockerImageTags.md
@@ -0,0 +1,57 @@
+# Docker Image Tags Documentation
+
+This document describes the tags generated by the `docker/metadata-action` in the GitHub Actions workflow for building Docker images.
+
+## Base Name
+
+The base name for the Docker images is derived from the repository:
+
+- `ghcr.io/yacy/yacy_search_server` (GitHub Container Registry)
+- `yacy/yacy_search_server` (Docker Hub)
+
+## Version Structure
+
+The tags are generated based on the following rules:
+
+### Default Tags
+
+- `latest`: Automatically assigned to the latest tagged release.
+
+### Semantic Versioning Tags
+
+For releases following semantic versioning (e.g., `1.2.3` or the `Release_1.2` format), the following tags are created:
+
+- `1.2.3`: Full version tag.
+- `1.2`: Major and minor version tag.
+- `1`: Major version tag.
+
+### Branch Tags
+
+- `<branch-name>`: For latest commit of branches (bleeding edge channel, e.g. `master`).
+
+### Pull Request Tags
+
+- `pr-<number>`: For latest commit of pull requests.
+
+## Image Variants
+
+The Docker images come in many flavors, each designed for a specific use case.
+
+### `yacy/yacy_search_server:<version>`
+
+This is the default image. If you are unsure about what your needs are, you probably want to use this one.
+
+### `yacy/yacy_search_server:<version>-alpine`
+
+This image is based on the popular Alpine Linux project. Alpine Linux is much smaller than most distribution base images (~5MB), and thus leads to much slimmer images in general.
+
+## Examples
+
+- `ghcr.io/yacy/yacy_search_server:latest`
+- `ghcr.io/yacy/yacy_search_server:1.2.3`
+- `ghcr.io/yacy/yacy_search_server:1.2`
+- `ghcr.io/yacy/yacy_search_server:1`
+- `ghcr.io/yacy/yacy_search_server:master`
+- `ghcr.io/yacy/yacy_search_server:pr-42`
+- `ghcr.io/yacy/yacy_search_server:latest-alpine`
+- `ghcr.io/yacy/yacy_search_server:1.2.3-alpine`
diff --git a/docker/Dockerfile b/docker/Dockerfile
index a2e5bf994..0e9792fd4 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -7,43 +7,30 @@
# docker run -d --name yacy -p 8090:8090 -p 8443:8443 -v yacy_data:/opt/yacy_search_server/DATA --log-opt max-size=200m --log-opt max-file=2 yacy/yacy_search_server:latest
-## build base
-FROM eclipse-temurin:24-jdk-noble AS base
-RUN apt-get update && apt-get install -yq wkhtmltopdf imagemagick xvfb ghostscript && rm -rf /var/lib/apt/lists/*
-
-
-## build app
-FROM base AS appbuilder
-
-RUN apt-get update && apt-get install -yq ant git curl && rm -rf /var/lib/apt/lists/*
-RUN java -version
+## builder image
+FROM eclipse-temurin:24-jdk-noble AS builder
+RUN apt-get update && apt-get install -y --no-install-recommends ant git curl && rm -rf /var/lib/apt/lists/*
+# compile YaCy
WORKDIR /opt
COPY . /opt/yacy_search_server/
-
-RUN ant compile -f /opt/yacy_search_server/build.xml && \
- apt-get purge -yq --auto-remove ant && \
- apt-get clean && \
- rm -rf /var/lib/apt/lists/*
-
-WORKDIR /opt/yacy_search_server/
-RUN git rev-parse HEAD > .git/shallow && \
- git tag -l | xargs git tag -d && \
- git gc --prune=now
+RUN ant compile -f /opt/yacy_search_server/build.xml
# Set initial admin password: "yacy" (encoded with custom yacy md5 function net.yacy.cora.order.Digest.encodeMD5Hex())
+# Intially enable HTTPS: this is the most secure option for remote administrator authentication
RUN sed -i "/adminAccountBase64MD5=/c\adminAccountBase64MD5=MD5:8cffbc0d66567a0987a4aba1ec46d63c" /opt/yacy_search_server/defaults/yacy.init && \
sed -i "/adminAccountForLocalhost=/c\adminAccountForLocalhost=false" /opt/yacy_search_server/defaults/yacy.init && \
sed -i "/server.https=false/c\server.https=true" /opt/yacy_search_server/defaults/yacy.init
-
-## build dist
-FROM base
+## build final image
+FROM eclipse-temurin:24-jdk-noble AS app
+RUN apt-get update && apt-get install -y --no-install-recommends wkhtmltopdf xvfb ghostscript && rm -rf /var/lib/apt/lists/*
LABEL maintainer="Michael Peter Christen <mc@yacy.net>"
+# copy YaCy to app image
RUN adduser --system --group --no-create-home --disabled-password yacy
WORKDIR /opt
-COPY --chown=yacy:yacy --from=appbuilder /opt/yacy_search_server /opt/yacy_search_server
+COPY --chown=yacy:yacy --from=builder /opt/yacy_search_server /opt/yacy_search_server
EXPOSE 8090 8443
VOLUME ["/opt/yacy_search_server/DATA"]
diff --git a/docker/Dockerfile.alpine b/docker/Dockerfile.alpine
index 627b5f0ef..3d1ff1a80 100644
--- a/docker/Dockerfile.alpine
+++ b/docker/Dockerfile.alpine
@@ -1,105 +1,63 @@
# Build a docker image from latest YaCy sources on Alpine Linux
+# with wkhtmltopdf for PDF generation and Java 21
-# Base image : latest stable official jdk 11 image from Docker based on Alpine Linux
-FROM openjdk:11-alpine
-
-# trace java version
-RUN java -version
+## builder image
+FROM eclipse-temurin:21-jdk-alpine-3.21 AS builder
# Install needed packages not in base image
-# (curl for sh scripts in /bin, and imagemagick,xvfb and ghostscript to enable PDF and image snapshot generation)
-RUN apk add --no-cache curl imagemagick xvfb ghostscript
-
-# --- Begin of wkhtmltopdf install : compile from sources because the wkhtmltopdf Alpine package is currently only on the Alpine edge branch
-
-# set current working dir
-WORKDIR /tmp
-
-# set wkhtmltopdf version once in a environment variable
-ENV WKHTMLTOPDF_VERSION 0.12.5
-
-# Download and extract wkhtmltopdf sources
-RUN curl -fSL https://github.com/wkhtmltopdf/wkhtmltopdf/archive/${WKHTMLTOPDF_VERSION}.tar.gz -o wkhtmltopdf-${WKHTMLTOPDF_VERSION}-src.tar.gz && \
- tar xzf wkhtmltopdf-${WKHTMLTOPDF_VERSION}-src.tar.gz
-
-# set current working dir
-WORKDIR wkhtmltopdf-${WKHTMLTOPDF_VERSION}
-
-# All in one step to reduce image size growth :
-# - add packages necessary to build wkhtmltopdf from sources and then to run it
-# - build wkhtmltopdf
-# - create a symbolic link to the wkhtmltopdf executable at a path where YaCy is expecting it
-# - remove the sources archive
-# - remove the build packages
-RUN apk update && \
- apk add --no-cache g++ make qt5-qtbase-dev qt5-qtwebkit-dev qt5-qtsvg-dev qt5-qtxmlpatterns-dev libgcc libstdc++ musl qt5-qtbase qt5-qtbase-x11 qt5-qtsvg qt5-qtwebkit && \
- qmake-qt5 -makefile && \
- make && \
- make install && \
- rm -f /tmp/wkhtmltopdf-${WKHTMLTOPDF_VERSION}-src.tar.gz && \
- apk del g++ make qt5-qtbase-dev qt5-qtwebkit-dev qt5-qtsvg-dev qt5-qtxmlpatterns-dev
-
-# --- End of wkhtmltopdf install
-
-# --- Begin of apache ant install : from binary distribution because ant is not in alpine packages
-
-# set current working dir
-WORKDIR /tmp
-
-# set ant version once in a environment variable
-ENV ANT_VERSION 1.10.5
+RUN apk add --no-cache curl git apache-ant
-# All in one step to reduce image size growth :
-# - add gnupg package
-# - get ant binary file from a mirror and PGP file signature from main repository
-# - import gpg keys from main repository and verify binary file signature
-# - extract binary, make /opt directory, move extracted ant to /opt/ant
-# - remove archive and gnupg package
-RUN apk update && \
- apk add --no-cache gnupg && \
- curl -fSL https://archive.apache.org/dist/ant/binaries/apache-ant-${ANT_VERSION}-bin.tar.gz -o apache-ant-${ANT_VERSION}-bin.tar.gz && \
- curl -fSL https://archive.apache.org/dist/ant/binaries/apache-ant-${ANT_VERSION}-bin.tar.gz.asc -o apache-ant-${ANT_VERSION}-bin.tar.gz.asc && \
- curl -fSL https://www.apache.org/dist/ant/KEYS | gpg --import && \
- gpg --verify apache-ant-${ANT_VERSION}-bin.tar.gz.asc && \
- tar xzf apache-ant-${ANT_VERSION}-bin.tar.gz && \
- mkdir -p /opt && \
- mv apache-ant-${ANT_VERSION} /opt/ant && \
- rm -f apache-ant-${ANT_VERSION}-bin.tar.gz && \
- apk del gnupg
-
-# set ant required environment variables
-ENV ANT_HOME /opt/ant
-ENV PATH ${PATH}:/opt/ant/bin
-
-# --- End of apache ant install
-
-# set current working dir
+# set current working dir & copy sources
WORKDIR /opt
-
-# All in one step to reduce image size growth :
-# - compile with apache ant
-# - delete ant binary install
-
-# copy sources
COPY . /opt/yacy_search_server/
-RUN apk add --no-cache \
- ant compile -f /opt/yacy_search_server/build.xml && \
- rm -rf /opt/yacy_search_server/.git && \
- rm -rf /opt/ant
+RUN ant compile -f /opt/yacy_search_server/build.xml
-RUN \
# Set initial admin password: "yacy" (encoded with custom yacy md5 function net.yacy.cora.order.Digest.encodeMD5Hex())
- sed -i "/adminAccountBase64MD5=/c\adminAccountBase64MD5=MD5:8cffbc0d66567a0987a4aba1ec46d63c" /opt/yacy_search_server/defaults/yacy.init && \
- sed -i "/adminAccountForLocalhost=/c\adminAccountForLocalhost=false" /opt/yacy_search_server/defaults/yacy.init && \
# Intially enable HTTPS: this is the most secure option for remote administrator authentication
- sed -i "/server.https=false/c\server.https=true" /opt/yacy_search_server/defaults/yacy.init && \
# Create user and group yacy: this user will be used to run YaCy main process
- addgroup yacy && adduser -S -G yacy -H -D yacy && \
# Set ownership of yacy install directory to yacy user/group
- chown yacy:yacy -R /opt/yacy_search_server
+RUN sed -i "/adminAccountBase64MD5=/c\adminAccountBase64MD5=MD5:8cffbc0d66567a0987a4aba1ec46d63c" /opt/yacy_search_server/defaults/yacy.init && \
+ sed -i "/adminAccountForLocalhost=/c\adminAccountForLocalhost=false" /opt/yacy_search_server/defaults/yacy.init && \
+ sed -i "/server.https=false/c\server.https=true" /opt/yacy_search_server/defaults/yacy.init
+
+## build final image
+FROM surnet/alpine-wkhtmltopdf:3.21.2-0.12.6-small AS wkhtmltopdf
+FROM eclipse-temurin:21-jre-alpine-3.21 AS app
-RUN rm -rf /opt/yacy_search_server/DATA
+RUN apk add --no-cache \
+ imagemagick \
+ xvfb \
+ ghostscript \
+ # Install dependencies for wkhtmltopdf
+ libstdc++ \
+ libx11 \
+ libxrender \
+ libxext \
+ libssl3 \
+ ca-certificates \
+ fontconfig \
+ freetype \
+ ttf-dejavu \
+ ttf-droid \
+ ttf-freefont \
+ ttf-liberation \
+ # more fonts
+ && apk add --no-cache --virtual .build-deps \
+ msttcorefonts-installer \
+ # Install microsoft fonts
+ && update-ms-fonts \
+ && fc-cache -f \
+ # Clean up when done
+ && rm -rf /tmp/* \
+ && apk del .build-deps
+
+# Copy wkhtmltopdf files from docker-wkhtmltopdf image
+COPY --from=wkhtmltopdf /bin/wkhtmltopdf /bin/wkhtmltopdf
+
+RUN addgroup yacy && adduser -S -G yacy -H -D yacy
+WORKDIR /opt
+COPY --chown=yacy:yacy --from=builder /opt/yacy_search_server /opt/yacy_search_server
# Expose HTTP and HTTPS default ports
EXPOSE 8090 8443
diff --git a/docker/README.md b/docker/README.md
new file mode 100644
index 000000000..8a63637b3
--- /dev/null
+++ b/docker/README.md
@@ -0,0 +1,215 @@
+# Yacy Docker image from latest sources
+
+## Supported tags
+
+* `latest` (Latest stable release)
+* `latest-alpine` (Latest stable release based on Alpine Linux)
+* `<version>` (Lock on a specific/minor/major version, e.g., `1.2.3`, `1.2`, `1`)
+* `<version>-alpine` (e.g., `1.2.3-alpine`)
+* `<branch-name>` (e.g., `master` for the latest commit of branches)
+* `pr-<number>` (e.g., `pr-42` for pull requests)
+
+For a detailed explanation of supported tags, refer to [DockerImageTags.md](./DockerImageTags.md).
+
+## Getting built image from Docker Hub and GitHub Container Registry
+
+The repository URLs are:
+
+* Docker Hub: <https://hub.docker.com/r/yacy/yacy_search_server/>
+* GitHub Container Registry: `ghcr.io/yacy/yacy_search_server`
+
+Examples:
+
+* `docker pull yacy/yacy_search_server:latest`
+* `docker pull ghcr.io/yacy/yacy_search_server:latest`
+* `docker pull ghcr.io/yacy/yacy_search_server:latest-alpine`
+* `docker pull ghcr.io/yacy/yacy_search_server:1.2.3`
+* `docker pull ghcr.io/yacy/yacy_search_server:master`
+* `docker pull ghcr.io/yacy/yacy_search_server:pr-42`
+
+## Building image yourself
+
+Using files in 'yacy_search_server/docker/':
+
+```sh
+cd yacy_search_server/docker
+```
+
+Then according to the image type:
+
+* `yacy/yacy_search_server:latest`: This image is based on the latest stable official [Eclipse Temurin](https://hub.docker.com/_/eclipse-temurin) 21 release. It includes YaCy compiled from the latest git repository sources.
+* `yacy/yacy_search_server:latest-alpine`: This image is based on the latest stable [Eclipse Temurin](https://hub.docker.com/_/eclipse-temurin) 21 release with Alpine Linux as the base. It also includes YaCy compiled from the latest git repository sources.
+
+```sh
+docker build -t yacy/yacy_search_server:latest -f Dockerfile ../
+```
+
+## Usage
+
+### Run the Docker image directly
+
+You can run the YaCy Docker image directly using the following command:
+
+```sh
+docker run -d --name yacy -p 8090:8090 -p 8443:8443 -v yacy_data:/opt/yacy_search_server/DATA --log-opt max-size=200m --log-opt max-file=2 yacy/yacy_search_server:latest
+```
+
+### Using Docker Compose
+
+You can also use Docker Compose to run the YaCy container. Create a `docker-compose.yml` file with the following content:
+
+```yaml
+services:
+ yacy:
+ container_name: yacy
+ image: yacy/yacy_search_server:latest
+ restart: unless-stopped
+ ports:
+ - "8090:8090"
+ - "8443:8443"
+ volumes:
+ - yacy_data:/opt/yacy_search_server/DATA
+ logging:
+ options:
+ max-size: "200m"
+ max-file: "2"
+
+volumes:
+ yacy_data:
+```
+
+Then start the container with:
+
+```sh
+docker-compose up -d
+```
+
+YaCy web interface is then exposed at `http://[container_ip]:8090`
+You can retrieve the container IP address with `docker inspect`.
+
+### Default admin account
+
+* login: admin
+* password: yacy
+
+You should modify this default password with page /ConfigAccounts_p.html when exposing publicly your YaCy container.
+
+### Handle persistent data volume
+
+As configured in the Dockerfile, by default YaCy data (in /opt/yacy_search_server/DATA) will persist after container stop or deletion, in a volume named "yacy_data".
+
+### HTTPS support
+
+This images are default configured with HTTPS enabled, and use a default certificate stored in defaults/freeworldKeystore. You should use your own certificate. In order to do it, you can proceed as follow.
+
+#### Self-signed certificate
+
+A self-signed certificate will provide encrypted communications with your YaCy server, but browsers will still complain about an invalid security certificate with the error "SEC_ERROR_UNKNOWN_ISSUER". If it is sufficient for you, you can permanently add an exception to your browser.
+
+This kind of certificate can be generated and added to your YaCy Docker container with the following:
+
+```sh
+keytool -keystore /var/lib/docker/volumes/[your_yacy_volume]/_data/SETTINGS/yacykeystore -genkey -keyalg RSA -alias yacycert
+```
+
+Then edit YaCy config file. For example, with the nano text editor:
+
+```sh
+nano /var/lib/docker/volumes/[your_yacy_volume]/_data/SETTINGS/yacy.conf
+```
+
+And configure the keyStoreXXXX properties accordingly:
+
+```sh
+keyStore=/opt/yacy_search_server/DATA/SETTINGS/yacykeystore
+keyStorePassword=yourpassword
+```
+
+#### Import an existing certificate
+
+Importing a certificate validated by a certification authority (CA) will ensure you have full HTTPS support with no security errors when accessing your YaCy peer. You can import an existing certificate in pkcs12 format.
+
+First copy it to the YaCy Docker container volume:
+
+```sh
+cp [yourStore].pkcs12 /var/lib/docker/volumes/[your_yacy_volume]/_data/SETTINGS/[yourStore].pkcs12
+```
+
+Then edit YaCy config file. For example, with the nano text editor:
+
+```sh
+nano /var/lib/docker/volumes/[your_yacy_volume]/_data/SETTINGS/yacy.conf
+```
+
+And configure the pkcs12XXX properties accordingly:
+
+```sh
+pkcs12ImportFile=/opt/yacy_search_server/DATA/SETTINGS/[yourStore].pkcs12
+pkcs12ImportPwd=yourpassword
+```
+
+### Next starts
+
+#### As attached process
+
+```sh
+docker start -a yacy
+```
+
+#### As background process
+
+```sh
+docker start yacy
+```
+
+### Shutdown
+
+* Use "Shutdown" button in administration web interface
+* OR run:
+
+```sh
+docker exec yacy /opt/yacy_search_server/stopYACY.sh
+```
+
+* OR run:
+
+```sh
+docker stop yacy
+```
+
+### Upgrade
+
+To upgrade your YaCy container, follow these steps:
+
+1. Pull the latest Docker image:
+
+ ```sh
+ docker pull yacy/yacy_search_server:latest
+ ```
+
+2. Stop and remove the old container:
+
+ ```sh
+ docker stop yacy
+ docker rm yacy
+ ```
+
+3. Run the new container using the same command as before:
+
+ ```sh
+ docker run -d --name yacy -p 8090:8090 -p 8443:8443 -v yacy_data:/opt/yacy_search_server/DATA --log-opt max-size=200m --log-opt max-file=2 yacy/yacy_search_server:latest
+ ```
+
+#### Update Docker Compose Images
+
+To update the images created with the Docker Compose file, you can use the following command:
+
+```sh
+docker-compose up -d --force-recreate --pull always
+```
+
+This command ensures that the latest images are pulled and the containers are recreated with the updated images.
+
+## License
+
+View [license](https://github.com/yacy/yacy_search_server/blob/master/COPYRIGHT) information for the software contained in this image.
diff --git a/docker/Readme.md b/docker/Readme.md
deleted file mode 100644
index b40a2a73a..000000000
--- a/docker/Readme.md
+++ /dev/null
@@ -1,151 +0,0 @@
-# Yacy Docker image from latest sources
-
-## Supported tags and respective Dockerfiles
-
-* latest (Dockerfile)
-* latest-alpine (Dockerfile.alpine)
-
-## Getting built image from Docker Hub
-
-The repository URL is https://hub.docker.com/r/yacy/yacy_search_server/
-
-* ubuntu-based: `docker pull yacy/yacy_search_server:latest`
-
-
-## Building image yourself
-
-Using files in 'yacy_search_server/docker/':
-```
-cd yacy_search_server/docker
-```
-
-Then according to the image type:
-* `yacy/yacy_search_server:latest`: This image is based on latest stable official Debian stable [openjdk](https://hub.docker.com/_/openjdk/) 11 image provided by Docker. Embed Yacy compiled from latest git repository sources.
-
-```
-docker build -t yacy/yacy_search_server:latest -f Dockerfile ../
-```
-
-* `yacy/yacy_search_server:aarch64-latest`: same as yacy/yacy_search_server:latest but based on
-
-```
-docker build -t yacy/yacy_search_server:aarch64-latest -f Dockerfile.aarch64 ../
-```
-
-
-
-## Usage
-
-### Run the docker image
-
-
-```
-docker run -d --name yacy -p 8090:8090 -p 8443:8443 -v yacy_data:/opt/yacy_search_server/DATA --log-opt max-size=200m --log-opt max-file=2 yacy/yacy_search_server:latest
-```
-
-YaCy web interface is then exposed at http://[container_ip]:8090
-You can retrieve the container IP address with `docker inspect`.
-
-#### Default admin account
-
-* login: admin
-* password: yacy
-
-You should modify this default password with page /ConfigAccounts_p.html when exposing publicly your YaCy container.
-
-
-#### Handle persistent data volume
-
-As configured in the Dockerfile, by default yacy data (in /opt/yacy_search_server/DATA) will persist after container stop or deletion, in a volume named "yacy_data"
-
-
-### HTTPS support
-
-This images are default configured with HTTPS enabled, and use a default certificate stored in defaults/freeworldKeystore. You should use your own certificate. In order to do it, you can proceed as follow.
-
-#### Self-signed certificate
-
-A self-signed certificate will provide encrypted communications with your YaCy server, but browsers will still complain about an invalid security certificate with the error "SEC_ERROR_UNKNOWN_ISSUER". If it is sufficient for you, you can permanently add and exception to your browser.
-
-This kind of certificate can be generated and added to your YaCy Docker container with the following:
-
- keytool -keystore /var/lib/docker/volumes/[your_yacy_volume]/_data/SETTINGS/yacykeystore -genkey -keyalg RSA -alias yacycert
-
-Then edit YaCy config file. For example with the nano text editor:
-
- nano /var/lib/docker/volumes/[your_yacy_volume]/_data/SETTINGS/yacy.conf
-
-And configure the keyStoreXXXX properties accordingly:
-
- keyStore=/opt/yacy_search_server/DATA/SETTINGS/yacykeystore
- keyStorePassword=yourpassword
-
-#### Import an existing certificate:
-
-Importing a certificate validated by a certification authority (CA) will ensure you have full HTTPS support with no security errors when accessing your YaCy peer. You can import an existing certificate in pkcs12 format.
-
-First copy it to the YaCy Docker container volume:
-
- cp [yourStore].pkcs12 /var/lib/docker/volumes/[your_yacy_volume]/_data/SETTINGS/[yourStore].pkcs12
-
-Then edit YaCy config file. For example with the nano text editor:
-
- nano /var/lib/docker/volumes/[your_yacy_volume]/_data/SETTINGS/yacy.conf
-
-And configure the pkcs12XXX properties accordingly:
-
- pkcs12ImportFile=/opt/yacy_search_server/DATA/SETTINGS/[yourStore].pkcs12
- pkcs12ImportPwd=yourpassword
-
-### Next starts
-
-#### As attached process
-
- docker start -a yacy
-
-#### As background process
-
- docker start yacy
-
-### Shutdown
-
-* Use "Shutdown" button in administration web interface
-* OR run:
-
- docker exec [your_container_name] /opt/yacy_search_server/stopYACY.sh
-
-* OR run:
-
- docker stop [your_container_name]
-
-### Upgrade
-
-You can upgrade your YaCy container the Docker way with the following commands sequence.
-
-Get latest Docker image:
-
- docker pull yacy/yacy_search_server:latest
-
-Create new container based on pulled image, using volume data from old container:
-
- docker create --name [tmp-container_name] -p 8090:8090 -p 8443:8443 --volumes-from=[container_name] --log-opt max-size=100m --log-opt max-file=2 yacy/yacy_search_server:latest
-
-Stop old container:
-
- docker exec [container_name] /opt/yacy_search_server/stopYACY.sh
-
-Start new container:
-
- docker start [tmp-container_name]
-
-Check everything works fine, then you can delete old container:
-
- docker rm [container_name]
-
-Rename new container to reuse same container name:
-
- docker rename [tmp-container_name] [container_name]
-
-## License
-
-View [license](https://github.com/yacy/yacy_search_server/blob/master/COPYRIGHT) information for the software contained in this image.