aerospike: непризнанный сервис в контейнере Docker? - PullRequest
0 голосов
/ 12 апреля 2019

Сервер Aerospike не запускается в Docker-контейнере.

установил аэроспайк в докер-контейнер, но при попытке запустить сервис показывает

aerospike: unrecognized service

Я использовал эту команду для запуска службы,

service aerospike start

Dockerfile:

FROM ubuntu:18.04
RUN apt-get update && apt-get install -q -y curl python2.7 python
RUN TEMPDIR=$(mktemp -d) && \
    cd $TEMPDIR && \
    curl -L 'aerospike.com/download/server/latest/artifact/ubuntu18' | tar xzv --strip-components 1 && \
    ./asinstall

Ответы [ 2 ]

1 голос
/ 12 апреля 2019

В вашем контейнере нет такой услуги, как aerospike:

root@6dc95b33962b:/# service --status-all
 [ ? ]  hwclock.sh
 [ - ]  procps

Вы установили aerospike-server-community пакет, и, как вы видите, эта версия подготовлена ​​для systemd.

root@eb4b937d4d45:/tmp/tmp.MIlx6iwhpg# dpkg -L  aerospike-server-community
/.
/etc
/etc/aerospike
/etc/aerospike/aerospike.conf
/etc/aerospike/irqbalance-ban.sh
/etc/aerospike/sample
/etc/aerospike/sample/README.md
/etc/aerospike/sample/aerospike_mesh.conf
/etc/aerospike/sample/aerospike_ssd.conf
/etc/aerospike/telemetry.conf
/etc/sysconfig
/etc/sysconfig/aerospike
/etc/sysconfig/aerospike_telemetry
/etc/systemd
/etc/systemd/system
/etc/systemd/system/aerospike.service.d
/etc/systemd/system/aerospike.service.d/aerospike.conf
/etc/systemd/system/aerospike.service.d/aerospike.conf.coldstart
/etc/systemd/system/aerospike.service.d/aerospike.conf.default

Пожалуйста, обратитесь к сообщению Stack Exchange: https://devops.stackexchange.com/questions/1635/is-there-any-concrete-and-acceptable-solution-for-running-systemd-inside-the-doc, чтобы узнать, как запустить systemd в контейнере Docker.

0 голосов
/ 12 апреля 2019

Обычно не рекомендуется запускать службу в контейнере, поскольку в конечном итоге вам придется запускать другой процесс с идентификатором PID 1, и в случае сбоя приложения контейнер не будет автоматически перезапускаться или останавливаться, давая вам неверную идею что все в порядке.

Вы должны установить свои зависимости / приложение и запустить его либо непосредственно в точке входа, либо внутри скрипта.

Проверьте официальный аэрокосмический Dockerfile, чтобы увидеть, как они это делают https://github.com/aerospike/aerospike-server.docker/blob/c5c6355c81b03b1e7cf6d817dfc053baabd4b7b6/Dockerfile

Я также рекомендую вам ознакомиться с документацией докера о передовых методах создания образов: https://docs.docker.com/develop/develop-images/dockerfile_best-practices/

...