dockerfile-template: install packages to support ssh-server
There is a need to recover code coverage logs from FVP containers [1] so
install required packages. Also, use docker ENV variables in the
dockerfile-template to hold packages dependencies, making it
cleaner the package installation phase.
[1] https://review.trustedfirmware.org/c/ci/tf-a-ci-scripts/+/9632
Signed-off-by: Leonardo Sandoval <leonardo.sandoval@linaro.org>
Change-Id: Iafb730c26412954026221be54d39081aa7dd2e26
diff --git a/script/docker/fvp/Makefile b/script/docker/fvp/Makefile
index 8ffc9c1..da7c327 100644
--- a/script/docker/fvp/Makefile
+++ b/script/docker/fvp/Makefile
@@ -23,6 +23,7 @@
rm -rf $(WORKSPACE)/$${tag} && \
mkdir -p $(WORKSPACE)/$${tag} && \
cp $@ $(WORKSPACE)/$${tag} && \
+ cp setup-sshd $(WORKSPACE)/$${tag} && \
./create-model-dockerfile.sh $${tarball} $(WORKSPACE)/$${tag} && \
docker build --tag fvp:$${tag} $(WORKSPACE)/$${tag} > /dev/null && \
echo "Docker image created" && \
diff --git a/script/docker/fvp/dockerfile-template b/script/docker/fvp/dockerfile-template
index 5803557..97485c3 100644
--- a/script/docker/fvp/dockerfile-template
+++ b/script/docker/fvp/dockerfile-template
@@ -1,13 +1,31 @@
FROM ${OS}:${OS_VER} as FVP
-RUN apt-get update && \
- apt-get install --no-install-recommends --yes bc libatomic1 telnet libdbus-1-3 xterm && \
- rm -rf /var/cache/apt
+ENV DEBIAN_FRONTEND=noninteractive
+ENV PKG_DEPS="\
+ bc \
+ ca-certificates \
+ curl \
+ libatomic1 \
+ libdbus-1-3 \
+ openssh-server \
+ telnet \
+ xterm \
+"
+
+RUN set -e ;\
+ apt update -q=2 ;\
+ apt full-upgrade -q=2 --yes ;\
+ apt install -q=2 --yes --no-install-recommends ${PKG_DEPS} ;\
+ # Cleanup
+ apt clean ;\
+ rm -rf /var/lib/apt/lists/* /tmp/*
FROM FVP
WORKDIR ${MODEL_DIR}
+COPY setup-sshd /usr/sbin/setup-sshd
+
# Add the FVP model tarball
# NOTE: some tarballs contain an installer script others don't, so it may be the case
# that the ADD instruction do install the model under /opt/model
@@ -18,3 +36,6 @@
--i-agree-to-the-contained-eula \
--verbose \
--destination ${MODEL_DIR}/${MODEL} && rm -f ${MODEL_DIR}/${MODEL}.sh || true
+
+EXPOSE 22
+ENTRYPOINT ["/usr/sbin/setup-sshd"]
diff --git a/script/docker/fvp/setup-sshd b/script/docker/fvp/setup-sshd
new file mode 100755
index 0000000..3cd9657
--- /dev/null
+++ b/script/docker/fvp/setup-sshd
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+passwd -d root
+echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
+echo "PermitEmptyPasswords yes" >> /etc/ssh/sshd_config
+mkdir -p /var/run/sshd
+/usr/sbin/sshd -D &
+
+exec "$@"