Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat!: make docker paths the same as in the node images #2086

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/actions/node-setup/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,4 @@ runs:
shell: bash
run: |
curl -L https://github.com/aeternity/aeternity/releases/download/v7.3.0-rc3/aeternity-v7.3.0-rc3-ubuntu-x86_64.tar.gz -o aeternity.tgz\
&& mkdir -p ${NODEROOT}/rel/aeternity && tar xf aeternity.tgz -C ${NODEROOT}/rel/aeternity && cp -rf ${NODEROOT}/rel/aeternity/lib/ ${NODEROOT}
&& mkdir -p ${NODEROOT} && tar xf aeternity.tgz -C ${NODEROOT}
51 changes: 24 additions & 27 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -35,30 +35,26 @@ RUN mkdir -p /home/aeternity/node
COPY ./docker/aeternity.yaml /home/aeternity/aeternity.yaml

# Set build git revision
RUN mkdir /home/aeternity/node/ae_mdw
RUN mkdir /home/aeternity/ae_mdw
COPY .git .git
RUN BUILD_REV="$(git log -1 --format=%h)" && echo $BUILD_REV > /home/aeternity/node/ae_mdw/AEMDW_REVISION
RUN BUILD_REV="$(git log -1 --format=%h)" && echo $BUILD_REV > /home/aeternity/ae_mdw/AEMDW_REVISION

WORKDIR /home/aeternity/node

# Download, and unzip latest aeternity release archive
ARG DEV_MODE="false"
ENV DEV_MODE=${DEV_MODE}
ENV NODEROOT=/home/aeternity/node/local
ENV NODEDIR=/home/aeternity/node/local/rel/aeternity
RUN mkdir -p ./local/rel/aeternity/data/mnesia
ENV NODEROOT=/home/aeternity/node/


COPY --from=aeternity /home/aeternity/node ./local/rel/aeternity
RUN chmod +x ${NODEDIR}/bin/aeternity
RUN cp -r ./local/rel/aeternity/lib local/
RUN sed -i 's/{max_skip_body_length, [0-9]\+}/{max_skip_body_length, 10240}/g' ${NODEDIR}/releases/*/sys.config
COPY --from=aeternity /home/aeternity/node ./
RUN chmod +x ${NODEROOT}/bin/aeternity
RUN sed -i 's/{max_skip_body_length, [0-9]\+}/{max_skip_body_length, 10240}/g' ${NODEROOT}/releases/*/sys.config

# Check if the config file is OK
RUN ${NODEDIR}/bin/aeternity check_config /home/aeternity/aeternity.yaml
RUN ${NODEROOT}/bin/aeternity check_config /home/aeternity/aeternity.yaml

# prepare build dir
WORKDIR /home/aeternity/node/ae_mdw
WORKDIR /home/aeternity/ae_mdw

# This is necessary for QEMU build, otherwise it crashes when building for another platform: https://elixirforum.com/t/mix-deps-get-memory-explosion-when-doing-cross-platform-docker-build/57157
ENV ERL_FLAGS="+JMsingle true"
Expand Down Expand Up @@ -96,7 +92,7 @@ RUN mix compile
COPY config/runtime.exs config/

# Generate swagger V3 file
RUN cp /home/aeternity/node/local/lib/aehttp-*/priv/oas3.yaml docs/swagger_v3/node_oas3.yaml
RUN cp /home/aeternity/node/lib/aehttp-*/priv/oas3.yaml docs/swagger_v3/node_oas3.yaml
RUN mix run --no-start -e 'IO.puts(Mix.Project.config[:version])' >AEMDW_VERSION
ARG PATH_PREFIX
RUN scripts/swagger-docs.py
Expand Down Expand Up @@ -126,21 +122,22 @@ RUN sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && locale-gen
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
ENV NODEROOT=/home/aeternity/node/local
ENV NODEDIR=/home/aeternity/node/local/rel/aeternity

WORKDIR "/home/aeternity/node"
ENV NODEROOT=/home/aeternity/node/

# set runner ENV
ARG MIX_ENV="prod"
ENV MIX_ENV=${MIX_ENV}
ENV AETERNITY_CONFIG=/home/aeternity/aeternity.yaml
ENV AETERNITY_CONFIG=/home/aeternity/.aeternity/aeternity/aeternity.yaml

# Only copy the final release from the build stage
COPY --from=builder /home/aeternity/node/ae_mdw/_build/${MIX_ENV}/rel/ae_mdw ./
COPY --from=builder /home/aeternity/node/local ./local
COPY ./docker/aeternity.yaml /home/aeternity/aeternity.yaml
COPY ./docker/aeternity-dev.yaml /home/aeternity/aeternity-dev.yaml
WORKDIR "/home/aeternity/node"
COPY --from=builder /home/aeternity/node/ ./

WORKDIR "/home/aeternity/ae_mdw"
COPY --from=builder /home/aeternity/ae_mdw/_build/${MIX_ENV}/rel/ae_mdw ./

COPY ./docker/aeternity.yaml /home/aeternity/.aeternity/aeternity/aeternity.yaml
COPY ./docker/aeternity-dev.yaml /home/aeternity/.aeternity/aeternity/aeternity-dev.yaml
COPY ./docker/healthcheck.sh /home/aeternity/healthcheck.sh

COPY --from=aeternity /usr/local/lib/librocksdb.so.7.10.2 /usr/local/lib/
Expand All @@ -153,8 +150,8 @@ RUN chmod +x /home/aeternity/healthcheck.sh

# Create data directories in advance so that volumes can be mounted in there
# see https://github.com/moby/moby/issues/2259 for more about this nasty hack
RUN mkdir -p ./local/rel/aeternity/data/mnesia \
&& mkdir -p ./local/rel/aeternity/data/mdw.db
RUN mkdir -p /home/aeternity/node/data/mnesia \
&& mkdir -p /home/aeternity/node/data/mdw.db

RUN useradd --uid 1000 --shell /bin/bash aeternity \
&& chown -R aeternity:aeternity /home/aeternity
Expand All @@ -163,8 +160,8 @@ ARG USER=aeternity
USER ${USER}

# Clear old logs
RUN rm -rf /home/aeternity/node/ae_mdw/log
RUN mkdir -p /home/aeternity/node/ae_mdw/log
RUN rm -rf /home/aeternity/ae_mdw/log
RUN mkdir -p /home/aeternity/ae_mdw/log

HEALTHCHECK --start-period=10s --start-interval=2s --timeout=2s CMD /home/aeternity/healthcheck.sh
CMD ["/home/aeternity/node/bin/server"]
CMD ["/home/aeternity/ae_mdw/bin/server"]
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ chown -R 1000 data

In case you want to setup different accounts on testnet with initial balance you can add this volume to `docker-compose-dev.yml`:

`- ${PWD}/accounts_test.json:/home/aeternity/node/local/rel/aeternity/data/aecore/.genesis/accounts_test.json`
`- ${PWD}/accounts_test.json:/home/aeternity/node/data/aecore/.genesis/accounts_test.json`

An example of `accounts_test.json` is:

Expand Down
2 changes: 1 addition & 1 deletion config/config.exs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ config :esbuild,
version: "0.8.2"

config :ae_mdw, AeMdw.Db.RocksDb,
data_dir: "#{node_root}/rel/aeternity/data/mdw.db",
data_dir: "#{node_root}/data/mdw.db",
drop_tables: [
Model.AsyncTasks,
Model.Aex9Balance,
Expand Down
5 changes: 0 additions & 5 deletions config/prod.exs
Original file line number Diff line number Diff line change
@@ -1,8 +1,3 @@
import Config

config :ae_mdw, build_revision: String.trim(File.read!("AEMDW_REVISION"))

# Logging
config :logger,
level: :info,
backends: [{LoggerFileBackend, :info}]
14 changes: 7 additions & 7 deletions docker-compose-dev-testnet.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,16 @@ services:
- "3013:3013" #Node's default external API port
- "3014:3014" #Node's channels default websocket port
volumes:
- ${PWD}/data_testnet/mnesia:/home/aeternity/node/local/rel/aeternity/data/mnesia
- ${PWD}/data_testnet/mdw.db:/home/aeternity/node/local/rel/aeternity/data/mdw.db
- ${PWD}/docker/aeternity_testnet.yaml:/home/aeternity/aeternity.yaml
- ${PWD}/docker/aeternity-dev.yaml:/home/aeternity/aeternity-dev.yaml
- ${PWD}/docker/accounts.json:/home/aeternity/node/local/rel/aeternity/data/aecore/.genesis/accounts_test.json
- ${PWD}/priv:/home/aeternity/node/ae_mdw/priv
- ${PWD}/data_testnet/mnesia:/home/aeternity/node/data/mnesia
- ${PWD}/data_testnet/mdw.db:/home/aeternity/node/data/mdw.db
- ${PWD}/docker/aeternity_testnet.yaml:/home/aeternity/.aeternity/aeternity/aeternity.yaml
- ${PWD}/docker/aeternity-dev.yaml:/home/aeternity/.aeternity/aeternity/aeternity-dev.yaml
- ${PWD}/docker/accounts.json:/home/aeternity/node/data/aecore/.genesis/accounts_test.json
- ${PWD}/priv:/home/aeternity/ae_mdw/priv
- ${PWD}:/app
- ${PWD}/docker/gitconfig:/root/.gitconfig
environment:
- AETERNITY_CONFIG=${AETERNITY_CONFIG:-/home/aeternity/aeternity.yaml}
- AETERNITY_CONFIG=${AETERNITY_CONFIG:-/home/aeternity/.aeternity/aeternity/aeternity.yaml}
networks:
ae_mdw_net_testnet:
aliases:
Expand Down
14 changes: 7 additions & 7 deletions docker-compose-dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,18 +16,18 @@ services:
- "3013:3013" #Node's default external API port
- "3014:3014" #Node's channels default websocket port
volumes:
- ${PWD}/data/mnesia:/home/aeternity/node/local/rel/aeternity/data/mnesia
- ${PWD}/data/mdw.db:/home/aeternity/node/local/rel/aeternity/data/mdw.db
- ${PWD}/docker/aeternity.yaml:/home/aeternity/aeternity.yaml
- ${PWD}/docker/aeternity-dev.yaml:/home/aeternity/aeternity-dev.yaml
- ${PWD}/docker/accounts.json:/home/aeternity/node/local/rel/aeternity/data/aecore/.genesis/accounts_test.json
- ${PWD}/priv:/home/aeternity/node/ae_mdw/priv
- ${PWD}/data/mnesia:/home/aeternity/node/data/mnesia
- ${PWD}/data/mdw.db:/home/aeternity/node/data/mdw.db
- ${PWD}/docker/aeternity.yaml:/home/aeternity/.aeternity/aeternity/aeternity.yaml
- ${PWD}/docker/aeternity-dev.yaml:/home/aeternity/.aeternity/aeternity/aeternity-dev.yaml
- ${PWD}/docker/accounts.json:/home/aeternity/node/data/aecore/.genesis/accounts_test.json
- ${PWD}/priv:/home/aeternity/ae_mdw/priv
- ${PWD}:/app
- ${PWD}/docker/gitconfig:/root/.gitconfig
- ${PWD}/.bash_history:/root/.bash_history
- ${PWD}/.erlang_history:/root/.erlang_history
environment:
- AETERNITY_CONFIG=${AETERNITY_CONFIG:-/home/aeternity/aeternity.yaml}
- AETERNITY_CONFIG=${AETERNITY_CONFIG:-/home/aeternity/.aeternity/aeternity/aeternity.yaml}
- HIST_FILE=/root/.bash_history
- ELIXIR_ERL_OPTIONS=-kernel shell_history enabled -kernel shell_history_path '.erlang_history'
- ENABLE_CONSOLE_LOG=true
Expand Down
18 changes: 9 additions & 9 deletions docker-compose-hc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,18 +17,18 @@ services:
- "3013:3013" #Node's default external API port
- "3014:3014" #Node's channels default websocket port
volumes:
- ${PWD}/data_hc/mnesia:/home/aeternity/node/local/rel/aeternity/data/mnesia
- ${PWD}/data_hc/mdw.db:/home/aeternity/node/local/rel/aeternity/data/mdw.db
- ${PWD}/hyperchain/aeternity.yaml:/home/aeternity/aeternity.yaml
- ${PWD}/docker/aeternity-dev.yaml:/home/aeternity/aeternity-dev.yaml
- ${PWD}/docker/accounts.json:/home/aeternity/node/local/rel/aeternity/data/aecore/.genesis/accounts_test.json
- ${PWD}/hyperchains/accounts.json:/home/aeternity/node/local/rel/aeternity/data/aecore/.ceres/hc_devnet_accounts.json
- ${PWD}/hyperchains/contracts.json:/home/aeternity/node/local/rel/aeternity/data/aecore/.ceres/hc_devnet_contracts.json
- ${PWD}/priv:/home/aeternity/node/ae_mdw/priv
- ${PWD}/data_hc/mnesia:/home/aeternity/node/data/mnesia
- ${PWD}/data_hc/mdw.db:/home/aeternity/node/data/mdw.db
- ${PWD}/hyperchain/aeternity.yaml:/home/aeternity/.aeternity/aeternity/aeternity.yaml
- ${PWD}/docker/aeternity-dev.yaml:/home/aeternity/.aeternity/aeternity/aeternity-dev.yaml
- ${PWD}/docker/accounts.json:/home/aeternity/node/data/aecore/.genesis/accounts_test.json
- ${PWD}/hyperchains/accounts.json:/home/aeternity/node/dataa/aecore/.ceres/hc_devnet_accounts.json
- ${PWD}/hyperchains/contracts.json:/home/aeternity/node/data/aecore/.ceres/hc_devnet_contracts.json
- ${PWD}/priv:/home/aeternity/ae_mdw/priv
- ${PWD}:/app
- ${PWD}/docker/gitconfig:/root/.gitconfig
environment:
- AETERNITY_CONFIG=${AETERNITY_CONFIG:-/home/aeternity/aeternity.yaml}
- AETERNITY_CONFIG=${AETERNITY_CONFIG:-/home/aeternity/.aeternity/aeternity/aeternity.yaml}
networks:
ae_mdw_net_hc:
aliases:
Expand Down
2 changes: 1 addition & 1 deletion docker-compose-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,4 @@ services:
volumes:
- ${PWD}:/app
environment:
AETERNITY_CONFIG: /home/aeternity/aeternity.yaml
AETERNITY_CONFIG: /home/aeternity/.aeternity/aeternity/aeternity.yaml
10 changes: 5 additions & 5 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@ services:
- "3013:3013" #Node's default external API port
- "3014:3014" #Node's channels default websocket port
volumes:
- ${PWD}/data/mnesia:/home/aeternity/node/local/rel/aeternity/data/mnesia
- ${PWD}/data/mdw.db:/home/aeternity/node/local/rel/aeternity/data/mdw.db
- ${PWD}/log:/home/aeternity/node/ae_mdw/log
- ${PWD}/data/mnesia:/home/aeternity/node/data/mnesia
- ${PWD}/data/mdw.db:/home/aeternity/node/data/mdw.db
- ${PWD}/log:/home/aeternity/ae_mdw/log
# uncomment for custom node setup
#- ${HOME}/aeternity.yaml:/home/aeternity/aeternity.yaml
#- ${HOME}/aeternity.yaml:/home/aeternity/.aeternity/aeternity/aeternity.yaml
environment:
- AETERNITY_CONFIG=/home/aeternity/aeternity.yaml
- AETERNITY_CONFIG=${AETERNITY_CONFIG:-/home/aeternity/.aeternity/aeternity/aeternity.yaml}
2 changes: 1 addition & 1 deletion mix.exs
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ defmodule AeMdw.MixProject do
# Specifies your project dependencies.
defp deps() do
[
{:ae_plugin, github: "aeternity/ae_plugin", ref: "cacff2c"},
{:ae_plugin, github: "aeternity/ae_plugin", ref: "82c6372"},
{:stream_split, "~> 0.1.5"},
{:ex2ms, "~> 1.6.0"},
{:logger_file_backend, "~> 0.0.11"},
Expand Down
2 changes: 1 addition & 1 deletion mix.lock
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
%{
"ae_plugin": {:git, "https://github.com/aeternity/ae_plugin.git", "cacff2ca9eb14a1b4cd3be08dc93a10e4194717d", [ref: "cacff2c"]},
"ae_plugin": {:git, "https://github.com/aeternity/ae_plugin.git", "82c6372e33f5ab57a56e803d7ab1ab265fc0f128", [ref: "82c6372"]},
"benchee": {:hex, :benchee, "1.0.1", "66b211f9bfd84bd97e6d1beaddf8fc2312aaabe192f776e8931cb0c16f53a521", [:mix], [{:deep_merge, "~> 1.0", [hex: :deep_merge, repo: "hexpm", optional: false]}], "hexpm", "3ad58ae787e9c7c94dd7ceda3b587ec2c64604563e049b2a0e8baafae832addb"},
"blankable": {:hex, :blankable, "1.0.0", "89ab564a63c55af117e115144e3b3b57eb53ad43ba0f15553357eb283e0ed425", [:mix], [], "hexpm", "7cf11aac0e44f4eedbee0c15c1d37d94c090cb72a8d9fddf9f7aec30f9278899"},
"bunt": {:hex, :bunt, "1.0.0", "081c2c665f086849e6d57900292b3a161727ab40431219529f13c4ddcf3e7a44", [:mix], [], "hexpm", "dc5f86aa08a5f6fa6b8096f0735c4e76d54ae5c9fa2c143e5a1fc7c1cd9bb6b5"},
Expand Down
Loading