diff --git a/.gitignore b/.gitignore index dabaefe2..3fb25a37 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,4 @@ build/ **/coverage **/.venv .idea +**/.vim diff --git a/apps/cic-eth/.dockerignore b/apps/cic-eth/.dockerignore new file mode 100644 index 00000000..9aae4e0e --- /dev/null +++ b/apps/cic-eth/.dockerignore @@ -0,0 +1,6 @@ +.git +.cache +.dot +**/doc +**/.venv +**/venv diff --git a/apps/cic-eth/docker/Dockerfile b/apps/cic-eth/docker/Dockerfile index 8edeec22..07ba1df5 100644 --- a/apps/cic-eth/docker/Dockerfile +++ b/apps/cic-eth/docker/Dockerfile @@ -7,22 +7,31 @@ WORKDIR /usr/src/cic-eth # TODO can we take all the requirements out of setup.py and just do a pip install -r requirements.txt && python setup.py #COPY cic-eth/requirements.txt . -#ARG EXTRA_INDEX_URL="https://pip.grassrootseconomics.net:8433" -#ARG GITLAB_PYTHON_REGISTRY="https://gitlab.com/api/v4/projects/27624814/packages/pypi/simple" +ARG EXTRA_INDEX_URL="https://pip.grassrootseconomics.net:8433" +ARG GITLAB_PYTHON_REGISTRY="https://gitlab.com/api/v4/projects/27624814/packages/pypi/simple" #RUN --mount=type=cache,mode=0755,target=/root/.cache/pip \ # pip install --index-url https://pypi.org/simple \ # --force-reinstall \ -# --trusted-host $pip_trusted_host \ # --extra-index-url $GITLAB_PYTHON_REGISTRY --extra-index-url $EXTRA_INDEX_URL \ # -r requirements.txt -COPY cic-eth/ . +COPY . . RUN --mount=type=cache,mode=0755,target=/root/.cache/pip \ - pip install --index-url https://pypi.org/simple \ - --force-reinstall \ - --trusted-host $pip_trusted_host \ - --extra-index-url $GITLAB_PYTHON_REGISTRY --extra-index-url $EXTRA_INDEX_URL . + pip install --index-url https://pypi.org/simple \ + --extra-index-url $GITLAB_PYTHON_REGISTRY --extra-index-url $EXTRA_INDEX_URL . +COPY docker/entrypoints/* ./ +RUN chmod 755 *.sh + +# # ini files in config directory defines the configurable parameters for the application +# # they can all be overridden by environment variables +# # to generate a list of environment variables from configuration, use: confini-dump -z (executable provided by confini package) +COPY config/ /usr/local/etc/cic-eth/ +COPY cic_eth/db/migrations/ /usr/local/share/cic-eth/alembic/ +COPY crypto_dev_signer_config/ /usr/local/etc/crypto-dev-signer/ + +# TODO this kind of code sharing across projects should be discouraged...can we make util a library? +#COPY util/liveness/health.sh /usr/local/bin/health.sh ENTRYPOINT [] # --- RUNTIME --- @@ -37,16 +46,18 @@ COPY --from=dev /usr/local/bin/ /usr/local/bin/ COPY --from=dev /usr/local/lib/python3.8/site-packages/ \ /usr/local/lib/python3.8/site-packages/ -COPY cic-eth/docker/* ./ +COPY docker/entrypoints/* ./ RUN chmod 755 *.sh -COPY cic-eth/scripts/ scripts/ # # ini files in config directory defines the configurable parameters for the application # # they can all be overridden by environment variables # # to generate a list of environment variables from configuration, use: confini-dump -z (executable provided by confini package) -COPY cic-eth/config/ /usr/local/etc/cic-eth/ -COPY cic-eth/cic_eth/db/migrations/ /usr/local/share/cic-eth/alembic/ -COPY cic-eth/crypto_dev_signer_config/ /usr/local/etc/crypto-dev-signer/ +COPY config/ /usr/local/etc/cic-eth/ +COPY cic_eth/db/migrations/ /usr/local/share/cic-eth/alembic/ +COPY crypto_dev_signer_config/ /usr/local/etc/crypto-dev-signer/ -COPY util/liveness/health.sh /usr/local/bin/health.sh +# TODO this kind of code sharing across projects should be discouraged...can we make util a library? +#COPY util/liveness/health.sh /usr/local/bin/health.sh + +ENTRYPOINT [] diff --git a/apps/cic-eth/docker/Dockerfile_ci b/apps/cic-eth/docker/Dockerfile_ci index c6513445..cbdb7fb0 100644 --- a/apps/cic-eth/docker/Dockerfile_ci +++ b/apps/cic-eth/docker/Dockerfile_ci @@ -1,4 +1,3 @@ -# syntax = docker/dockerfile:1.2 FROM registry.gitlab.com/grassrootseconomics/cic-base-images:python-3.8.6-dev-55da5f4e as dev WORKDIR /usr/src/cic-eth @@ -8,21 +7,30 @@ WORKDIR /usr/src/cic-eth # TODO can we take all the requirements out of setup.py and just do a pip install -r requirements.txt && python setup.py #COPY cic-eth/requirements.txt . -#ARG EXTRA_INDEX_URL="https://pip.grassrootseconomics.net:8433" -#ARG GITLAB_PYTHON_REGISTRY="https://gitlab.com/api/v4/projects/27624814/packages/pypi/simple" +ARG EXTRA_INDEX_URL="https://pip.grassrootseconomics.net:8433" +ARG GITLAB_PYTHON_REGISTRY="https://gitlab.com/api/v4/projects/27624814/packages/pypi/simple" #RUN --mount=type=cache,mode=0755,target=/root/.cache/pip \ # pip install --index-url https://pypi.org/simple \ # --force-reinstall \ -# --trusted-host $pip_trusted_host \ # --extra-index-url $GITLAB_PYTHON_REGISTRY --extra-index-url $EXTRA_INDEX_URL \ # -r requirements.txt -COPY cic-eth/ . -RUN pip install --index-url https://pypi.org/simple \ - --force-reinstall \ - --trusted-host $pip_trusted_host \ - --extra-index-url $GITLAB_PYTHON_REGISTRY --extra-index-url $EXTRA_INDEX_URL . +COPY . . +RUN pip install --index-url https://pypi.org/simple \ + --extra-index-url $GITLAB_PYTHON_REGISTRY --extra-index-url $EXTRA_INDEX_URL . +COPY docker/entrypoints/* ./ +RUN chmod 755 *.sh + +# # ini files in config directory defines the configurable parameters for the application +# # they can all be overridden by environment variables +# # to generate a list of environment variables from configuration, use: confini-dump -z (executable provided by confini package) +COPY config/ /usr/local/etc/cic-eth/ +COPY cic_eth/db/migrations/ /usr/local/share/cic-eth/alembic/ +COPY crypto_dev_signer_config/ /usr/local/etc/crypto-dev-signer/ + +# TODO this kind of code sharing across projects should be discouraged...can we make util a library? +#COPY util/liveness/health.sh /usr/local/bin/health.sh ENTRYPOINT [] # --- RUNTIME --- @@ -37,16 +45,18 @@ COPY --from=dev /usr/local/bin/ /usr/local/bin/ COPY --from=dev /usr/local/lib/python3.8/site-packages/ \ /usr/local/lib/python3.8/site-packages/ -COPY cic-eth/docker/* ./ +COPY docker/entrypoints/* ./ RUN chmod 755 *.sh -COPY cic-eth/scripts/ scripts/ # # ini files in config directory defines the configurable parameters for the application # # they can all be overridden by environment variables # # to generate a list of environment variables from configuration, use: confini-dump -z (executable provided by confini package) -COPY cic-eth/config/ /usr/local/etc/cic-eth/ -COPY cic-eth/cic_eth/db/migrations/ /usr/local/share/cic-eth/alembic/ -COPY cic-eth/crypto_dev_signer_config/ /usr/local/etc/crypto-dev-signer/ +COPY config/ /usr/local/etc/cic-eth/ +COPY cic_eth/db/migrations/ /usr/local/share/cic-eth/alembic/ +COPY crypto_dev_signer_config/ /usr/local/etc/crypto-dev-signer/ -COPY util/liveness/health.sh /usr/local/bin/health.sh +# TODO this kind of code sharing across projects should be discouraged...can we make util a library? +#COPY util/liveness/health.sh /usr/local/bin/health.sh + +ENTRYPOINT [] diff --git a/apps/cic-eth/docker/db.sh b/apps/cic-eth/docker/entrypoints/db.sh similarity index 100% rename from apps/cic-eth/docker/db.sh rename to apps/cic-eth/docker/entrypoints/db.sh diff --git a/apps/cic-eth/docker/start_dispatcher.sh b/apps/cic-eth/docker/entrypoints/start_dispatcher.sh similarity index 100% rename from apps/cic-eth/docker/start_dispatcher.sh rename to apps/cic-eth/docker/entrypoints/start_dispatcher.sh diff --git a/apps/cic-eth/docker/start_retry.sh b/apps/cic-eth/docker/entrypoints/start_retry.sh similarity index 100% rename from apps/cic-eth/docker/start_retry.sh rename to apps/cic-eth/docker/entrypoints/start_retry.sh diff --git a/apps/cic-eth/docker/start_tasker.sh b/apps/cic-eth/docker/entrypoints/start_tasker.sh similarity index 100% rename from apps/cic-eth/docker/start_tasker.sh rename to apps/cic-eth/docker/entrypoints/start_tasker.sh diff --git a/apps/cic-eth/docker/start_tracker.sh b/apps/cic-eth/docker/entrypoints/start_tracker.sh similarity index 100% rename from apps/cic-eth/docker/start_tracker.sh rename to apps/cic-eth/docker/entrypoints/start_tracker.sh diff --git a/docker-compose.yml b/docker-compose.yml index 375098b1..3955f1ff 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -230,6 +230,7 @@ services: build: context: apps/cic-eth dockerfile: docker/Dockerfile + target: dev environment: CIC_REGISTRY_ADDRESS: $CIC_REGISTRY_ADDRESS ETH_GAS_PROVIDER_ADDRESS: $DEV_ETH_ACCOUNT_GAS_PROVIDER @@ -279,6 +280,7 @@ services: build: context: apps/cic-eth dockerfile: docker/Dockerfile + target: dev environment: ETH_PROVIDER: http://eth:8545 DATABASE_USER: ${DATABASE_USER:-grassroots} @@ -317,6 +319,7 @@ services: build: context: apps/cic-eth dockerfile: docker/Dockerfile + target: dev environment: ETH_PROVIDER: http://eth:8545 DATABASE_USER: ${DATABASE_USER:-grassroots} @@ -357,6 +360,7 @@ services: build: context: apps/cic-eth dockerfile: docker/Dockerfile + target: dev environment: ETH_PROVIDER: http://eth:8545 DATABASE_USER: ${DATABASE_USER:-grassroots}