ci: move windows base image to docker image, add workdir
Signed-off-by: Jakub Sokołowski <jakub@status.im> Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
This commit is contained in:
parent
5a07956672
commit
30dc24a3a9
|
@ -15,4 +15,5 @@ qtci;55ffd9f225708b3aa1443851cfa8dead2c1f9959;
|
||||||
react_native_cli;2.0.1;
|
react_native_cli;2.0.1;
|
||||||
react_native_desktop;v0.56.1_4;
|
react_native_desktop;v0.56.1_4;
|
||||||
watchman;4.9.0;
|
watchman;4.9.0;
|
||||||
|
windows_base_image;20181113;2d1a92dbef85bab94d8f7e571a5e0d10
|
||||||
yarn;1.13.0;
|
yarn;1.13.0;
|
||||||
|
|
28
Gemfile.lock
28
Gemfile.lock
|
@ -2,7 +2,7 @@ GEM
|
||||||
remote: https://rubygems.org/
|
remote: https://rubygems.org/
|
||||||
specs:
|
specs:
|
||||||
CFPropertyList (3.0.0)
|
CFPropertyList (3.0.0)
|
||||||
addressable (2.5.2)
|
addressable (2.6.0)
|
||||||
public_suffix (>= 2.0.2, < 4.0)
|
public_suffix (>= 2.0.2, < 4.0)
|
||||||
atomos (0.1.3)
|
atomos (0.1.3)
|
||||||
babosa (1.0.2)
|
babosa (1.0.2)
|
||||||
|
@ -16,26 +16,26 @@ GEM
|
||||||
digest-crc (0.4.1)
|
digest-crc (0.4.1)
|
||||||
domain_name (0.5.20180417)
|
domain_name (0.5.20180417)
|
||||||
unf (>= 0.0.5, < 1.0.0)
|
unf (>= 0.0.5, < 1.0.0)
|
||||||
dotenv (2.5.0)
|
dotenv (2.7.1)
|
||||||
emoji_regex (0.1.1)
|
emoji_regex (1.0.1)
|
||||||
excon (0.62.0)
|
excon (0.62.0)
|
||||||
faraday (0.15.4)
|
faraday (0.15.4)
|
||||||
multipart-post (>= 1.2, < 3)
|
multipart-post (>= 1.2, < 3)
|
||||||
faraday-cookie_jar (0.0.6)
|
faraday-cookie_jar (0.0.6)
|
||||||
faraday (>= 0.7.4)
|
faraday (>= 0.7.4)
|
||||||
http-cookie (~> 1.0.0)
|
http-cookie (~> 1.0.0)
|
||||||
faraday_middleware (0.12.2)
|
faraday_middleware (0.13.1)
|
||||||
faraday (>= 0.7.4, < 1.0)
|
faraday (>= 0.7.4, < 1.0)
|
||||||
fastimage (2.1.5)
|
fastimage (2.1.5)
|
||||||
fastlane (2.112.0)
|
fastlane (2.116.1)
|
||||||
CFPropertyList (>= 2.3, < 4.0.0)
|
CFPropertyList (>= 2.3, < 4.0.0)
|
||||||
addressable (>= 2.3, < 3.0.0)
|
addressable (>= 2.3, < 3.0.0)
|
||||||
babosa (>= 1.0.2, < 2.0.0)
|
babosa (>= 1.0.2, < 2.0.0)
|
||||||
bundler (>= 1.12.0, < 2.0.0)
|
bundler (>= 1.12.0, < 3.0.0)
|
||||||
colored
|
colored
|
||||||
commander-fastlane (>= 4.4.6, < 5.0.0)
|
commander-fastlane (>= 4.4.6, < 5.0.0)
|
||||||
dotenv (>= 2.1.1, < 3.0.0)
|
dotenv (>= 2.1.1, < 3.0.0)
|
||||||
emoji_regex (~> 0.1)
|
emoji_regex (>= 0.1, < 2.0)
|
||||||
excon (>= 0.45.0, < 1.0.0)
|
excon (>= 0.45.0, < 1.0.0)
|
||||||
faraday (~> 0.9)
|
faraday (~> 0.9)
|
||||||
faraday-cookie_jar (~> 0.0.6)
|
faraday-cookie_jar (~> 0.0.6)
|
||||||
|
@ -76,15 +76,15 @@ GEM
|
||||||
representable (~> 3.0)
|
representable (~> 3.0)
|
||||||
retriable (>= 2.0, < 4.0)
|
retriable (>= 2.0, < 4.0)
|
||||||
signet (~> 0.9)
|
signet (~> 0.9)
|
||||||
google-cloud-core (1.2.7)
|
google-cloud-core (1.3.0)
|
||||||
google-cloud-env (~> 1.0)
|
google-cloud-env (~> 1.0)
|
||||||
google-cloud-env (1.0.5)
|
google-cloud-env (1.0.5)
|
||||||
faraday (~> 0.11)
|
faraday (~> 0.11)
|
||||||
google-cloud-storage (1.15.0)
|
google-cloud-storage (1.16.0)
|
||||||
digest-crc (~> 0.4)
|
digest-crc (~> 0.4)
|
||||||
google-api-client (~> 0.23)
|
google-api-client (~> 0.23)
|
||||||
google-cloud-core (~> 1.2)
|
google-cloud-core (~> 1.2)
|
||||||
googleauth (~> 0.6.2)
|
googleauth (>= 0.6.2, < 0.10.0)
|
||||||
googleauth (0.6.7)
|
googleauth (0.6.7)
|
||||||
faraday (~> 0.12)
|
faraday (~> 0.12)
|
||||||
jwt (>= 1.4, < 3.0)
|
jwt (>= 1.4, < 3.0)
|
||||||
|
@ -96,7 +96,7 @@ GEM
|
||||||
http-cookie (1.0.3)
|
http-cookie (1.0.3)
|
||||||
domain_name (~> 0.5)
|
domain_name (~> 0.5)
|
||||||
httpclient (2.8.3)
|
httpclient (2.8.3)
|
||||||
json (2.1.0)
|
json (2.2.0)
|
||||||
jwt (2.1.0)
|
jwt (2.1.0)
|
||||||
memoist (0.16.0)
|
memoist (0.16.0)
|
||||||
mime-types (3.2.2)
|
mime-types (3.2.2)
|
||||||
|
@ -110,7 +110,7 @@ GEM
|
||||||
naturally (2.2.0)
|
naturally (2.2.0)
|
||||||
netrc (0.11.0)
|
netrc (0.11.0)
|
||||||
os (1.0.0)
|
os (1.0.0)
|
||||||
plist (3.4.0)
|
plist (3.5.0)
|
||||||
public_suffix (2.0.5)
|
public_suffix (2.0.5)
|
||||||
representable (3.0.4)
|
representable (3.0.4)
|
||||||
declarative (< 0.1.0)
|
declarative (< 0.1.0)
|
||||||
|
@ -144,9 +144,9 @@ GEM
|
||||||
unf (0.1.4)
|
unf (0.1.4)
|
||||||
unf_ext
|
unf_ext
|
||||||
unf_ext (0.0.7.5)
|
unf_ext (0.0.7.5)
|
||||||
unicode-display_width (1.4.0)
|
unicode-display_width (1.4.1)
|
||||||
word_wrap (1.0.0)
|
word_wrap (1.0.0)
|
||||||
xcodeproj (1.7.0)
|
xcodeproj (1.8.1)
|
||||||
CFPropertyList (>= 2.3.3, < 4.0)
|
CFPropertyList (>= 2.3.3, < 4.0)
|
||||||
atomos (~> 0.1.3)
|
atomos (~> 0.1.3)
|
||||||
claide (>= 1.0.2, < 2.0)
|
claide (>= 1.0.2, < 2.0)
|
||||||
|
|
|
@ -3,7 +3,7 @@ pipeline {
|
||||||
docker {
|
docker {
|
||||||
label 'linux'
|
label 'linux'
|
||||||
/* WARNING: remember to keep this up-to-date with the value in docker/android/Makefile */
|
/* WARNING: remember to keep this up-to-date with the value in docker/android/Makefile */
|
||||||
image 'statusteam/status-build-android:1.1.0-16a42e06'
|
image 'statusteam/status-build-android:1.1.1-cd1596b3'
|
||||||
args (
|
args (
|
||||||
"-v /home/jenkins/tmp:/var/tmp:rw "+
|
"-v /home/jenkins/tmp:/var/tmp:rw "+
|
||||||
"-v /home/jenkins/status-im.keystore:/tmp/status-im.keystore:ro"
|
"-v /home/jenkins/status-im.keystore:/tmp/status-im.keystore:ro"
|
||||||
|
|
|
@ -2,9 +2,9 @@ pipeline {
|
||||||
agent {
|
agent {
|
||||||
/* privileged mode is necessary for fuse */
|
/* privileged mode is necessary for fuse */
|
||||||
docker {
|
docker {
|
||||||
label 'linux-new'
|
label 'linux'
|
||||||
/* WARNING: remember to keep this up-to-date with the value in docker/linux/Makefile */
|
/* WARNING: remember to keep this up-to-date with the value in docker/linux/Makefile */
|
||||||
image 'statusteam/status-build-linux:1.1.0-2a35dcde'
|
image 'statusteam/status-build-linux:1.1.1-8e5f6658'
|
||||||
args (
|
args (
|
||||||
"-v /var/tmp/lein:/var/tmp/lein:rw "+
|
"-v /var/tmp/lein:/var/tmp/lein:rw "+
|
||||||
"-v /var/tmp/npm:/var/tmp/npm:rw "+
|
"-v /var/tmp/npm:/var/tmp/npm:rw "+
|
||||||
|
|
|
@ -4,13 +4,12 @@ pipeline {
|
||||||
docker {
|
docker {
|
||||||
label 'linux-new'
|
label 'linux-new'
|
||||||
/* WARNING: remember to keep this up-to-date with the value in docker/windows/Makefile */
|
/* WARNING: remember to keep this up-to-date with the value in docker/windows/Makefile */
|
||||||
image 'statusteam/status-build-windows:1.1.0-fb116054'
|
image 'statusteam/status-build-windows:1.1.1-67cf7368'
|
||||||
args (
|
args (
|
||||||
"--privileged "+
|
"--privileged "+
|
||||||
"-v /dev/fuse:/dev/fuse "+
|
"-v /dev/fuse:/dev/fuse "+
|
||||||
"-v /var/tmp/lein:/var/tmp/lein:rw "+
|
"-v /var/tmp/lein:/var/tmp/lein:rw "+
|
||||||
"-v /var/tmp/npm:/var/tmp/npm:rw "+
|
"-v /var/tmp/npm:/var/tmp/npm:rw "
|
||||||
"-v /opt/StatusIm-Windows-base-image_20181113.zip:/opt/StatusIm-Windows-base-image.zip:ro"
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -50,7 +49,6 @@ pipeline {
|
||||||
CONAN_PRINT_RUN_COMMANDS = '1'
|
CONAN_PRINT_RUN_COMMANDS = '1'
|
||||||
CONAN_SYSREQUIRES_MODE = 'disabled'
|
CONAN_SYSREQUIRES_MODE = 'disabled'
|
||||||
CONAN_SYSREQUIRES_SUDO = '0'
|
CONAN_SYSREQUIRES_SUDO = '0'
|
||||||
STATUSIM_WINDOWS_BASEIMAGE_ZIP = '/opt/StatusIm-Windows-base-image.zip'
|
|
||||||
VERBOSE_LEVEL = '3'
|
VERBOSE_LEVEL = '3'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@ DEPS_HASH = $(shell $(GIT_ROOT)/scripts/gen-deps-hash.sh -b $(BASE_IMAGE_TAG) \
|
||||||
-d android-sdk \
|
-d android-sdk \
|
||||||
-d android-sdk-platform \
|
-d android-sdk-platform \
|
||||||
-d android-sdk-build-tools)
|
-d android-sdk-build-tools)
|
||||||
IMAGE_TAG = 1.1.0-$(DEPS_HASH)
|
IMAGE_TAG = 1.1.1-$(DEPS_HASH)
|
||||||
IMAGE_NAME = statusteam/status-build-android:$(IMAGE_TAG)
|
IMAGE_NAME = statusteam/status-build-android:$(IMAGE_TAG)
|
||||||
|
|
||||||
build: $(ANDROID_NDK_ARCHIVE) $(ANDROID_SDK_ARCHIVE)
|
build: $(ANDROID_NDK_ARCHIVE) $(ANDROID_SDK_ARCHIVE)
|
||||||
|
|
|
@ -24,7 +24,8 @@ RUN mkdir /var/tmp/npm /var/tmp/lein \
|
||||||
&& curl -sL https://deb.nodesource.com/setup_10.x | bash - \
|
&& curl -sL https://deb.nodesource.com/setup_10.x | bash - \
|
||||||
&& apt-get update \
|
&& apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get -q -y --no-install-recommends install \
|
&& DEBIAN_FRONTEND=noninteractive apt-get -q -y --no-install-recommends install \
|
||||||
file jq git wget zip unzip s3cmd build-essential nodejs locales \
|
file autoconf automake libtool build-essential \
|
||||||
|
jq git wget zip unzip s3cmd nodejs locales \
|
||||||
ca-certificates oracle-java8-installer oracle-java8-set-default \
|
ca-certificates oracle-java8-installer oracle-java8-set-default \
|
||||||
&& locale-gen ${LANG} \
|
&& locale-gen ${LANG} \
|
||||||
&& npm install -g yarn@${YARN_VERSION} \
|
&& npm install -g yarn@${YARN_VERSION} \
|
||||||
|
@ -32,10 +33,10 @@ RUN mkdir /var/tmp/npm /var/tmp/lein \
|
||||||
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/man
|
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/man
|
||||||
|
|
||||||
# These are the UID and GID values used by Jenkins
|
# These are the UID and GID values used by Jenkins
|
||||||
RUN addgroup --gid 1002 jenkins \
|
RUN addgroup --gid 1001 jenkins \
|
||||||
&& adduser --shell /bin/bash \
|
&& adduser --shell /bin/bash \
|
||||||
--disabled-password --gecos "" \
|
--disabled-password --gecos "" \
|
||||||
--uid 1001 --gid 1002 jenkins \
|
--uid 1001 --gid 1001 jenkins \
|
||||||
&& su jenkins -c "git config --global user.email 'jenkins'" \
|
&& su jenkins -c "git config --global user.email 'jenkins'" \
|
||||||
&& su jenkins -c "git config --global user.name 'jenkins@status.im'"
|
&& su jenkins -c "git config --global user.name 'jenkins@status.im'"
|
||||||
|
|
||||||
|
@ -52,6 +53,8 @@ RUN su -l jenkins -c \
|
||||||
nvm install ${NODE_VERSION} && \
|
nvm install ${NODE_VERSION} && \
|
||||||
nvm alias default ${NODE_VERSION}"
|
nvm alias default ${NODE_VERSION}"
|
||||||
|
|
||||||
|
WORKDIR /home/jenkins
|
||||||
|
|
||||||
LABEL source="https://github.com/status-im/status-react/tree/develop/docker/base" \
|
LABEL source="https://github.com/status-im/status-react/tree/develop/docker/base" \
|
||||||
description="Base Image used for building Status app." \
|
description="Base Image used for building Status app." \
|
||||||
maintainer="jakub@status.im"
|
maintainer="jakub@status.im"
|
||||||
|
|
|
@ -5,12 +5,9 @@ GIT_ROOT = $(shell git rev-parse --show-toplevel)
|
||||||
|
|
||||||
# WARNING: Remember to change the tag when updating the image
|
# WARNING: Remember to change the tag when updating the image
|
||||||
DEPS_HASH = $(shell $(GIT_ROOT)/scripts/gen-deps-hash.sh -d leiningen -d node -d yarn)
|
DEPS_HASH = $(shell $(GIT_ROOT)/scripts/gen-deps-hash.sh -d leiningen -d node -d yarn)
|
||||||
IMAGE_TAG = 1.1.0-$(DEPS_HASH)
|
IMAGE_TAG = 1.1.1-$(DEPS_HASH)
|
||||||
IMAGE_NAME = statusteam/status-build-base:$(IMAGE_TAG)
|
IMAGE_NAME = statusteam/status-build-base:$(IMAGE_TAG)
|
||||||
|
|
||||||
get-image-tag:
|
|
||||||
@echo $(IMAGE_TAG)
|
|
||||||
|
|
||||||
build: nvm_install.sh
|
build: nvm_install.sh
|
||||||
docker build \
|
docker build \
|
||||||
--build-arg="LEIN_VERSION=$(call __toolversion, leiningen)" \
|
--build-arg="LEIN_VERSION=$(call __toolversion, leiningen)" \
|
||||||
|
@ -24,3 +21,6 @@ nvm_install.sh:
|
||||||
|
|
||||||
push: build
|
push: build
|
||||||
docker push $(IMAGE_NAME)
|
docker push $(IMAGE_NAME)
|
||||||
|
|
||||||
|
get-image-tag:
|
||||||
|
@echo $(IMAGE_TAG)
|
||||||
|
|
|
@ -12,7 +12,7 @@ QT_URL = https://download.qt.io/archive/qt
|
||||||
# WARNING: Remember to update `ci/Jenkinsfile.*` with the same IMAGE_TAG value
|
# WARNING: Remember to update `ci/Jenkinsfile.*` with the same IMAGE_TAG value
|
||||||
BASE_IMAGE_TAG = $(shell cd $(GIT_ROOT)/docker/base && make get-image-tag)
|
BASE_IMAGE_TAG = $(shell cd $(GIT_ROOT)/docker/base && make get-image-tag)
|
||||||
DEPS_HASH = $(shell $(GIT_ROOT)/scripts/gen-deps-hash.sh -b $(BASE_IMAGE_TAG) -d cmake -d golang -d node -d qt -d qtci -d react_native_desktop)
|
DEPS_HASH = $(shell $(GIT_ROOT)/scripts/gen-deps-hash.sh -b $(BASE_IMAGE_TAG) -d cmake -d golang -d node -d qt -d qtci -d react_native_desktop)
|
||||||
IMAGE_TAG = 1.1.0-$(DEPS_HASH)
|
IMAGE_TAG = 1.1.1-$(DEPS_HASH)
|
||||||
IMAGE_NAME = statusteam/status-build-linux:$(IMAGE_TAG)
|
IMAGE_NAME = statusteam/status-build-linux:$(IMAGE_TAG)
|
||||||
|
|
||||||
build: $(QT_ARCHIVE)
|
build: $(QT_ARCHIVE)
|
||||||
|
|
|
@ -7,6 +7,7 @@ ARG CONAN_VERSION
|
||||||
ARG CMAKE_VERSION
|
ARG CMAKE_VERSION
|
||||||
ARG GOLANG_VERSION
|
ARG GOLANG_VERSION
|
||||||
ARG NODE_VERSION
|
ARG NODE_VERSION
|
||||||
|
ARG WIN_BASE_IMAGE_VERSION
|
||||||
ENV PATH=/home/jenkins/.nvm/versions/node/v${NODE_VERSION}/bin:/usr/local/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
ENV PATH=/home/jenkins/.nvm/versions/node/v${NODE_VERSION}/bin:/usr/local/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
||||||
|
|
||||||
RUN add-apt-repository -y ppa:git-core/ppa \
|
RUN add-apt-repository -y ppa:git-core/ppa \
|
||||||
|
@ -47,6 +48,9 @@ RUN mkdir -p /tmp/react-native-desktop \
|
||||||
&& cd \
|
&& cd \
|
||||||
&& rm -r /tmp/react-native-desktop
|
&& rm -r /tmp/react-native-desktop
|
||||||
|
|
||||||
|
ADD ./StatusIm-Windows-base-image_${WIN_BASE_IMAGE_VERSION}.zip /opt/StatusIm-Windows-base-image.zip
|
||||||
|
ENV STATUSIM_WINDOWS_BASEIMAGE_ZIP=/opt/StatusIm-Windows-base-image.zip
|
||||||
|
|
||||||
LABEL source="https://github.com/status-im/status-react/tree/develop/docker/windows" \
|
LABEL source="https://github.com/status-im/status-react/tree/develop/docker/windows" \
|
||||||
description="Image for building Windows Desktop version of Status app." \
|
description="Image for building Windows Desktop version of Status app." \
|
||||||
maintainer="jakub@status.im"
|
maintainer="jakub@status.im"
|
||||||
|
|
|
@ -5,11 +5,16 @@ GIT_ROOT = $(shell git rev-parse --show-toplevel)
|
||||||
|
|
||||||
# WARNING: Remember to update `ci/Jenkinsfile.*` with the same IMAGE_TAG value
|
# WARNING: Remember to update `ci/Jenkinsfile.*` with the same IMAGE_TAG value
|
||||||
BASE_IMAGE_TAG = $(shell cd $(GIT_ROOT)/docker/base && make get-image-tag)
|
BASE_IMAGE_TAG = $(shell cd $(GIT_ROOT)/docker/base && make get-image-tag)
|
||||||
DEPS_HASH = $(shell $(GIT_ROOT)/scripts/gen-deps-hash.sh -b $(BASE_IMAGE_TAG) -d cmake -d conan -d golang -d node -d react_native_desktop)
|
DEPS_HASH = $(shell $(GIT_ROOT)/scripts/gen-deps-hash.sh -b $(BASE_IMAGE_TAG) -d cmake -d conan -d golang -d node -d react_native_desktop -d windows_base_image)
|
||||||
IMAGE_TAG = 1.1.0-$(DEPS_HASH)
|
IMAGE_TAG = 1.1.1-$(DEPS_HASH)
|
||||||
IMAGE_NAME = statusteam/status-build-windows:$(IMAGE_TAG)
|
IMAGE_NAME = statusteam/status-build-windows:$(IMAGE_TAG)
|
||||||
|
|
||||||
build:
|
WIN_BASE_IMAGE_VER = $(call __toolversion, windows_base_image)
|
||||||
|
WIN_BASE_IMAGE_DM5 = $(call __toolversion, -c windows_base_image)
|
||||||
|
WIN_BASE_IMAGE_ZIP = StatusIm-Windows-base-image_$(WIN_BASE_IMAGE_VER).zip
|
||||||
|
WIN_BASE_IMAGE_URL = https://desktop-app-files.ams3.digitaloceanspaces.com/$(WIN_BASE_IMAGE_ZIP)
|
||||||
|
|
||||||
|
build: $(WIN_BASE_IMAGE_ZIP)
|
||||||
@ if [ "${DEPS_HASH}" = "" ]; then \
|
@ if [ "${DEPS_HASH}" = "" ]; then \
|
||||||
echo "DEPS_HASH not set"; \
|
echo "DEPS_HASH not set"; \
|
||||||
exit 1; \
|
exit 1; \
|
||||||
|
@ -22,8 +27,13 @@ build:
|
||||||
--build-arg="GOLANG_VERSION=$(call __toolversion, golang)" \
|
--build-arg="GOLANG_VERSION=$(call __toolversion, golang)" \
|
||||||
--build-arg="NODE_VERSION=$(call __toolversion, node)" \
|
--build-arg="NODE_VERSION=$(call __toolversion, node)" \
|
||||||
--build-arg="RNATIVE_VERSION=$(call __toolversion, react_native_desktop)" \
|
--build-arg="RNATIVE_VERSION=$(call __toolversion, react_native_desktop)" \
|
||||||
|
--build-arg="WIN_BASE_IMAGE_VERSION=$(WIN_BASE_IMAGE_VER)" \
|
||||||
--label="commit=$(GIT_COMMIT)" \
|
--label="commit=$(GIT_COMMIT)" \
|
||||||
-t $(IMAGE_NAME) .
|
-t $(IMAGE_NAME) .
|
||||||
|
|
||||||
|
$(WIN_BASE_IMAGE_ZIP):
|
||||||
|
wget -q "$(WIN_BASE_IMAGE_URL)" -O "$(WIN_BASE_IMAGE_ZIP)"
|
||||||
|
echo "$(WIN_BASE_IMAGE_DM5) $(WIN_BASE_IMAGE_ZIP)" | md5sum --check
|
||||||
|
|
||||||
push: build
|
push: build
|
||||||
docker push $(IMAGE_NAME)
|
docker push $(IMAGE_NAME)
|
||||||
|
|
Loading…
Reference in New Issue