java需要澄清Dockerfile中的命令吗?
我正试图通过开源Dkron调度程序运行jar文件。我需要修改docker文件以在容器中安装java。请澄清复制命令在这里的含义
FROM golang:1.14
LABEL maintainer="Victor Castell <victor@victorcastell.com>"
EXPOSE 8080 8946
RUN mkdir -p /app
WORKDIR /app
ENV GO111MODULE=on
COPY go.mod go.mod
COPY go.sum go.sum #here
RUN go mod download
COPY . .
RUN go install ./...
CMD ["dkron"]
它还有dockerfile。包含此项的集线器
FROM alpine
MAINTAINER Victor Castell <victor@victorcastell.com>
ENV DKRON_VERSION 0.11.0
RUN set -x \
&& buildDeps='bash ca-certificates openssl' \
&& apk add --update $buildDeps \
&& rm -rf /var/cache/apk/* \
&& mkdir -p /opt/local/dkron \
&& wget -O /opt/local/dkron/dkron.tar.gz https://github.com/victorcoder/dkron/releases/download/v${DKRON_VERSION}/dkron_${DKRON_VERSION}_linux_amd64.tar.gz \
&& cd /opt/local/dkron \
&& tar -xzf dkron.tar.gz \
&& rm /opt/local/dkron/dkron.tar.gz
EXPOSE 8080 8946
ENV SHELL /bin/bash
WORKDIR /opt/local/dkron
ENTRYPOINT ["/opt/local/dkron/dkron"]
CMD ["--help"]
还需要做哪些更改才能使java文件在容器中运行?多谢各位
# 1 楼答案
这来自Docker文档:https://docs.docker.com/engine/reference/builder/
# 2 楼答案
复制步骤从构建上下文中获取文件,并将其复制到生成图像的一层中。构建上下文作为build命令中的一个参数从客户机传递到docker引擎,通常是一个
.
,指示当前目录作为构建上下文发送您可以在多阶段构建期间将源代码更改为另一个阶段,从而允许您将构建工件从编译器环境转移到希望部署的运行时环境。你可以改变它,从另一个图像中提取文件。这两项都是通过复制步骤的
from
选项完成的请注意,此命令仅以一种方式工作,目标始终是您正在构建的映像,并且由于源在历史上始终是构建上下文,因此语法中不包括源和目标上的范围。例如,docker将
COPY build-context:. container:.
缩短为COPY . .
文档中的重要链接: