第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何在已經(jīng)使用另一個(gè)映像的 docker 容器中設(shè)置和運(yùn)行一個(gè)非常簡(jiǎn)單的

如何在已經(jīng)使用另一個(gè)映像的 docker 容器中設(shè)置和運(yùn)行一個(gè)非常簡(jiǎn)單的

波斯汪 2022-09-28 16:40:59
我的任務(wù)是創(chuàng)建一個(gè)非常簡(jiǎn)單的,Web瀏覽器可訪問的gui,可以在docker容器中運(yùn)行特定的java文件。為此,我選擇設(shè)置一個(gè)php-apache服務(wù)器,該服務(wù)器提供索引.php帶有g(shù)ui的文檔。泊塢文件如下所示:FROM php:7.0-apacheCOPY src /var/www/htmlEXPOSE 80這得到了gui(索引.php在src文件夾中)我已經(jīng)寫好了,運(yùn)行沒有問題,但它無(wú)法訪問和運(yùn)行所需的java文件(顯然,因?yàn)檫@會(huì)創(chuàng)建一個(gè)單獨(dú)的容器)。問題:如何在現(xiàn)有的 Docker 文件(下面提供)中設(shè)置一個(gè) php-apache 服務(wù)器,執(zhí)行與上述 Docker 文件相同的操作?我的目標(biāo)是使用php腳本運(yùn)行java文件并向用戶顯示結(jié)果。FROM openjdk:8-jre-slimWORKDIR /usr/src/appCOPY ["./build/libs/*.jar", "./fooBar.jar"]ENV JAVA_OPTS=${FOO_JAVA_OPTS}CMD ["/usr/bin/tail", "-f", "/dev/null"]我沒有自己編寫java文件,只是負(fù)責(zé)使用它來運(yùn)行特定的命令。
查看完整描述

2 回答

?
烙印99

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超13個(gè)贊

似乎沒有像我最初希望的那樣合并圖像的簡(jiǎn)單方法(您的 Dockerfile 中不能有多個(gè) FROM 語(yǔ)句)。我最終要做的是手動(dòng)將兩個(gè)圖像(openjdkphp)合并成這樣的東西:

FROM php:7.0-apache


ENV LANG C.UTF-8

RUN { \

        echo '#!/bin/sh'; \

        echo 'set -e'; \

        echo; \

        echo 'dirname "$(dirname "$(readlink -f "$(which javac || which java)")")"'; \

    } > /usr/local/bin/docker-java-home \

    && chmod +x /usr/local/bin/docker-java-home

RUN ln -svT "/usr/lib/jvm/java-8-openjdk-$(dpkg --print-architecture)" /docker-java-home

ENV JAVA_HOME /docker-java-home/jre

ENV JAVA_VERSION 8u212

ENV JAVA_DEBIAN_VERSION 8u212-b01-1~deb9u1

RUN set -ex; \

    if [ ! -d /usr/share/man/man1 ]; then \

        mkdir -p /usr/share/man/man1; \

    fi; \

    apt-get update; \

    apt-get install -y --no-install-recommends openjdk-8-jre-headless="$JAVA_DEBIAN_VERSION"; \

    rm -rf /var/lib/apt/lists/*; \

    [ "$(readlink -f "$JAVA_HOME")" = "$(docker-java-home)" ]; \

    update-alternatives --get-selections | awk -v home="$(readlink -f "$JAVA_HOME")" 'index($3, home) == 1 { $2 = "manual"; print | "update-alternatives --set-selections" }'; \

    update-alternatives --query java | grep -q 'Status: manual'


COPY ["./build/libs/*.jar", "./FooBar.jar"]

ENV JAVA_OPTS=${FOO_JAVA_OPTS}


COPY gui/src /var/www/html

EXPOSE 80

兩者都是基于 Debian 的圖像,所以合并相對(duì)容易(我還從原始圖像源中刪除了許多雜亂的評(píng)論),并且由于 openjdk 圖像更簡(jiǎn)單,我將其添加到 php 圖像的頂部,而不是相反。


查看完整回答
反對(duì) 回復(fù) 2022-09-28
?
智慧大石

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超3個(gè)贊

因?yàn)樗腔?Debian 的圖像。一種方法是,在容器中安裝軟件包并從中創(chuàng)建新映像。


root@310c94d8d75f:/usr/src/app# cat /etc/os-release

PRETTY_NAME="Debian GNU/Linux 9 (stretch)"

NAME="Debian GNU/Linux"

VERSION_ID="9"

VERSION="9 (stretch)"


2: root@310c94d8d75f:/usr/src/app# apt update


3- root@310c94d8d75f:/usr/src/app# apt install apache2

4- root@310c94d8d75f:/usr/src/app# apt install php

最后運(yùn)行:泊塢窗提交


在此之后,您將獲得具有上述名稱的新圖像。


樓盤: https://docs.docker.com/engine/reference/commandline/commit/


2:您可以在 Dockerfile 中添加相同的命令并重建。


FROM openjdk:8-jre-slim


WORKDIR /usr/src/app

COPY ["./build/libs/*.jar", "./fooBar.jar"]

ENV JAVA_OPTS=${FOO_JAVA_OPTS}

CMD ["/usr/bin/tail", "-f", "/dev/null"]

RUN apt update && apt install apache2 -y && apt install php -y


查看完整回答
反對(duì) 回復(fù) 2022-09-28
  • 2 回答
  • 0 關(guān)注
  • 120 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)