首页 > 解决方案 > 在 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文件。

标签: javaazuredockerazure-web-app-service

解决方案


我遇到了同样的问题,只需更换

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"]

我希望这部分可以帮助您解决问题


推荐阅读