Я пытаюсь развернуть службу TPM в контейнере docker, следуя инструкциям, подробно изложенным в https://github.com/vchatterji/tpm2-luks (этот процесс отлично работал для меня на виртуальной машине с установленной Ubuntu 18.04).
Все работает хорошо до тех пор, пока не потребуется включить службу TPM-ABRMD , поэтому необходимо выполнить команды udevadm
и systemctl
для перезапуска правил udev и включения + активации службы.
По умолчанию ни одна из этих команд не доступна из моего контейнера docker, и хотя я нашел обходной путь для возможности использовать udevadm
и вручную установить символические ссылки, связанные с systemctl enable
, это не было недостаточно, чтобы запустить службу ABRMD.
Что-то мне не хватает? Я перепробовал множество других возможностей, но ни одна из них не сработала.
Я использую docker -compose, и контейнер, в который я хотел бы установить этот сервис, имеет docker - compose.yml связанный файл:
version: '3'
services:
api:
build:
context: dockerfiles
image: api
container_name: api
restart: unless-stopped
ports:
- ${API_EXTERNAL_PORT}:8080
depends_on:
- sql
environment:
HOST_DB: sql
PORT_DB: 3306
NAME_DB: ${MYSQL_DATABASE}
PASSWORD_DB: ${MYSQL_PASSWORD}
USER_DB: ${MYSQL_USER}
и следующие Dockerfile (inside / dockerfiles):
FROM ubuntu:18.04
WORKDIR /app
RUN apt-get update && apt-get install -y openjdk-8-jdk
ENV JAVA_OPTS ""
ENTRYPOINT ["sh", "-c"]
CMD ["java $JAVA_OPTS -Djava.secutiry.egd=file:/dev/./urandom -jar /app/app.war"]
Заранее спасибо.