要发布的私人码头集装箱

时间:2018-05-31 12:09:19

标签: docker docker-compose dockerhub vapor

我正在使用类似于下面的Dockerfile多级配置。

FROM swift:4.1

WORKDIR /app
COPY . .
RUN swift build --configuration release && mv `swift build -c release --show-bin-path` /build/bin

FROM ubuntu:16.04

RUN apt-get -qq update && apt-get install -y \
  libicu55 libxml2 libbsd0 libcurl3 libatomic1 wget  && rm -r /var/lib/apt/lists/*
RUN /bin/bash -c "$(wget -qO- https://apt.vapor.sh)"
RUN wget -q https://repo.vapor.codes/apt/keyring.gpg -O- | apt-key add -
RUN apt-get update && apt-get install swift vapor -y

WORKDIR /app
COPY --from=builder /build/bin .
COPY --from=builder /build/lib/* /usr/lib/
EXPOSE 3000

ENTRYPOINT ./Run serve -e prod -b 0.0.0.0 -p 3000

我目前正在使用它在虚拟服务器中部署我的服务,由于其低性能需要永远构建项目。

构建并上传到docker hub中的私有仓库,构建器的映像结果是一种很好的做法,也是可能的,所以我可以从本地计算机上完成它吗?

我可以在虚拟服务器中进行第二步吗?这意味着:

FROM myPrivateImageBuiltLocally as image

WORKDIR /app
COPY . .

FROM ubuntu:16.04

RUN apt-get -qq update && apt-get install -y \
  libicu55 libxml2 libbsd0 libcurl3 libatomic1 wget  && rm -r /var/lib/apt/lists/*
RUN /bin/bash -c "$(wget -qO- https://apt.vapor.sh)"
RUN wget -q https://repo.vapor.codes/apt/keyring.gpg -O- | apt-key add -
RUN apt-get update && apt-get install swift vapor -y

WORKDIR /app
COPY --from=builder /build/bin .
COPY --from=builder /build/lib/* /usr/lib/
EXPOSE 3000

ENTRYPOINT ./Run serve -e prod -b 0.0.0.0 -p 3000

1 个答案:

答案 0 :(得分:1)

是的,你可以做到。您不必在本地构建它。您可以使用dockerhub的自动构建功能。它的工作原理如下。

1)。将代码推送到github / bitbucket 2)。在dockerhub中创建新图像并映射到github repo

每次将新提交推送到github repo时,这将自动构建映像。

您还可以查看所有统计信息,例如构建日志,Succss或失败,下载次数等...

参考:https://docs.docker.com/docker-cloud/builds/automated-build/#configure-automated-build-settings