java - 在 Docker 中运行启动脚本
问题描述
我从下面构建了 docker 映像:
FROM rocker/r-ubuntu:20.04
LABEL maintainer="Utkarsh Saraf"
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update && \
apt-get upgrade -y && \
apt-get install -y software-properties-common \
apt-utils \
libxml2-dev \
openjdk-8-jdk \
build-essential \
libcurl4-gnutls-dev \
libssl-dev \
openssh-server && \
apt-get clean
WORKDIR /app
COPY . /app
COPY start.sh /start.sh
RUN chmod +x /start.sh
ENTRYPOINT ["sh","/app/startup.sh"]
在 startup.sh 中,以下代码包含:
java web-app.jar &
如何执行shell文件。
解决方案
我遇到了同样的问题,只需更换
RUN chmod +x /start.sh
CMD ["startup.sh"]
经过
ENTRYPOINT ["sh", "/app/startup.sh"]
您最终的 dockerfile 将是:
FROM rocker/r-ubuntu:20.04
LABEL maintainer="Utkarsh Saraf"
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update && \
apt-get upgrade -y && \
apt-get install -y software-properties-common \
apt-utils \
libxml2-dev \
openjdk-8-jdk \
build-essential \
libcurl4-gnutls-dev \
libssl-dev \
openssh-server && \
apt-get clean
# for enabling SSh in container ------------------------------#
EXPOSE 80 2222 3306 8081
WORKDIR /app
COPY . /app
COPY start.sh start.sh
ENTRYPOINT ["sh", "/app/startup.sh"]
我希望这部分可以帮助您解决问题
推荐阅读
- node.js - Node Jest S3 上传模拟
- graph-databases - 如何在 ArangoDB 中以编程方式在集合中创建边?
- drupal - Drupal 用户注册 - 其他可能的唯一键?
- python - Keras:如何乘法()?
- r - 在R中合并具有起始模式的文件
- django - 如果我更改 django 应用程序名称会出现什么问题?
- spring-mvc - Spring Integration 测试不使用安全配置
- sql - 为什么我的选择 Distinct 在我的 sql 中不起作用
- gitlab - 为主机以外的 Gitlab CI-CD 设置不同的结帐 repo 位置
- c++ - 使用 Murmur2 64 位哈希函数生成会导致冲突的输入