Решил перенести свои старые проекты на новый сервер. Используется старая версия php 5.4, но завернутая в докер-контейнер. Хочу пересобрать образ, но не получается: пакеты не ставятся.
Вот минимальный Dockerfile:
FROM php:5.4-fpm
RUN apt-get update
RUN apt-get install -y libjpeg-dev libpng++-dev libfreetype6-dev
На apt-get update ругается так:
W: GPG error: http://security.debian.org jessie/updates InRelease: The following signatures were invalid: KEYEXPIRED 1668892417 The following signatures couldn't be verified because the public key is not available: NO_PUBKEY AA8E81B4331F7F50
W: GPG error: http://httpredir.debian.org jessie-updates InRelease: The following signatures were invalid: KEYEXPIRED 1668891673
W: GPG error: http://httpredir.debian.org jessie Release: The following signatures were invalid: KEYEXPIRED 1668891673
А на вторую команду так:
WARNING: The following packages cannot be authenticated!
zlib1g libpng12-0 libfreetype6 zlib1g-dev libpng12-dev libfreetype6-dev libjpeg62-turbo libjpeg62-turbo-dev libjpeg-dev
libpng++-dev
E: There are problems and -y was used without --force-yes
Если использовать --force-yes, пакеты ставятся. Но это неправильно.
Я понимаю, почему подпись просрочена, а репо переехал.
Вот тут (stackexchange.com) советуют поправить sources.list и поставить Acquire::Check-Valid-Until "false";.
Но это не работает. Да и тоже неправильно - репо снова переедет или его прикончат окончательно.
Поэтому вопрос такой: где найти сорцы пакетов libjpeg-dev libpng++-dev libfreetype6-dev, какую версию среди них выбрать и как все это дело собрать? Может быть найти один какой-то Makefile от Debian где эту информацию вытащить?
OS: Debian GNU/Linux 8 (jessie)
PS. Сделать из работающего контейнера образ, и использовать уже его - не предлагать.
Есть filebeat, который пишет в data stream «filebeat-8.2.0». В него попадает много сообщений. Индекс на основе этого стрима живет недолго - 1 неделю.
Хотелось бы разделить индекс: важное хранить в отдельном индексе с циклом 1 месяц, для чего фильтровать входной поток.
Я сделал реиндекс, в нем есть фильтр, все работает. Но он не совсем подходит: в новый индекс не попадают документы, которые были записаны после это операции.
А хотелось бы постоянно «подгружать» новые документы. Как это сделать?
Есть телеграм-бот.
Требуется отправить команду «/start» этому боту не из мессенжера, а, например, через curl.
Все что гуглится - как написать бота, чтобы отвечал, а у меня обратная задача - послать боту.
Вот что я хочу:
curl -H "Accept: application/json" "https://telegram.me/MyBot/start"
Ответ (эта часть уже есть):
{"resp": "Hello! This is start message"}
Зачем? Мой бот управляет устройством, и я хочу со страницы (через браузер, а не сервер) слать ему команды посредством ajax, пока обкатываю на курле.
Знаю как сделать и запустить образ, но есть несколько вопросов уже по эксплуатации:
«Докеризация». Столкнулся с тем, что трудно поддерживать веб-приложение на nodeJS, готовое для запуска как в «обычной среде», так и в Докере.
Конкретно:
«npm install» под рутом не выполняет скрипт из секции «scripts>install» из «package.json», это обходится, но все же.
для докера надо отдельно ставить crontab и запускать его.
Получается целых два набора для подготовки среды. Как обычно делают, чтобы работало и там и там?
Концепция один сервис-один контейнер это хорошо, но как связывать их между собой? Подозреваю что есть куча вариантов, какой оптимальный?
Конфигурирование. Например, нужно выставить интервалы крону. Открыть редактор при выполнении "docker build" как оказалось невозможно. Передавать через окружение? Заранее редактировать конфиг? Как обычно делают?