Закрытый докер-контейнер для релиза - PullRequest
0 голосов
/ 31 мая 2018

Я использую многоступенчатую конфигурацию 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

В настоящее время я использую это для развертывания моей службы на виртуальном сервере, что из-за его низкой производительности требует много времени для созданияproject.

Является ли хорошей практикой и возможно ли создание и загрузка в частный репозиторий в 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 голосов
/ 04 июня 2018

Да, вы можете сделать это.Вам не нужно строить это локально.Вы можете использовать функцию автоматической сборки dockerhub.Это работает так.

1).Вставьте код в github / bitbucket 2).Создайте новое изображение в dockerhub и сопоставьте его с репозиторием github

. Это будет автоматически создавать образ каждый раз, когда вы отправляете новый коммит в репозиторий github.

Вы также можете просмотреть все статистические данные, такие как журналы сборки, Succss или сбой, количество загрузок и т. Д ...

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

...