Tob*_*ann 3 ubuntu background-process docker dockerfile docker-build
我想在期间运行某个应用程序的集成测试docker build。这些测试要求Redis服务器可用。
redis-server在集成测试步骤(即gradle build?)中如何运行并使其在后台运行?
这是我的精髓Dockerfile:
FROM ubuntu:16.04
# apt-get install stuff
# ...
# install gradle
# build and install redis
WORKDIR /app
ADD . /app
# TODO: start redis-server
# run unit tests / integration tests of app
RUN /opt/gradle/gradle-4.6/bin/gradle build --info
# TODO: stop redis-server
# build app
RUN ./gradlew assemble
# start app with
# docker run
CMD ["java", "-jar", "my_app.jar"]
Run Code Online (Sandbox Code Playgroud)
但是为了完整起见,我还是想分享一个原始问题的解决方案:
RUN nohup bash -c "redis-server &" && sleep 4 && /opt/gradle/gradle-4.6/bin/gradle build --info
Run Code Online (Sandbox Code Playgroud)
这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"]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4371 次 |
| 最近记录: |