* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * '' * '
Однако для полноты картины я все же хочу поделиться решением оригинального вопроса:
RUN nohup bash -c "redis-server &" && sleep 4 && /opt/gradle/gradle-4.6/bin/gradle build --info
Это работает redis-server
только для этого одного слоя. sleep 4
как раз там, чтобы дать Redis достаточно времени для запуска.
Итак, Dockerfile
выглядит следующим образом:
FROM ubuntu:16.04
# apt-get install stuff
# ...
# install gradle
# build and install redis
WORKDIR /app
ADD . /app
# run unit tests / integration tests of app
RUN nohup bash -c "redis-server &" && sleep 4 && /opt/gradle/gradle-4.6/bin/gradle build --info
# TODO: uninstall redis
# build app
RUN ./gradlew assemble
# start app with
# docker run
CMD ["java", "-jar", "my_app.jar"]