{% set tpl = ix_lib.base.render.Render(values) %} {% set perm_container = tpl.deps.perms(values.consts.perms_container_name) %} {% set perm_config = {"uid": values.consts.run_as_user, "gid": values.consts.run_as_group, "mode": "check"} %} {% set wallet = tpl.add_container(values.consts.monero_wallet_rpc_container_name, "image") %} {% do wallet.set_user(values.consts.run_as_user, values.consts.run_as_group) %} {% do wallet.healthcheck.set_custom_test( "curl --digest -u $(cat /home/monero/wallet/monero-wallet-rpc.%d.login) http://localhost:%d/json_rpc" | format( values.network.wallet_rpc_port.port_number, values.network.wallet_rpc_port.port_number ) ) %} {% do wallet.set_entrypoint([ "monero-wallet-rpc", "--non-interactive", "--rpc-bind-ip=0.0.0.0", "--confirm-external-bind" ]) %} {% set commands = namespace(x=[ "--rpc-bind-port=%d" | format(values.network.wallet_rpc_port.port_number), "--wallet-dir=/home/monero/wallet/wallet" ]) %} {% if not values.wallet.use_remote_node %} {% do commands.x.append("--daemon-address=%s:%d" | format("host.docker.internal", values.wallet.local_node_rpc_port)) %} {% do commands.x.append("--trusted-daemon") %} {% else %} {% do commands.x.append("--daemon-address=%s" | format(values.wallet.remote_node_address)) %} {% if values.wallet.trust_daemon %} {% do commands.x.append("--trusted-daemon") %} {% endif %} {% if values.wallet.ssl_enabled %} {% do commands.x.append("--daemon-ssl=enabled") %} {% endif %} {% endif %} {% if values.wallet.ipv6_enabled %} {% do commands.x.append("--rpc-use-ipv6") %} {% endif %} {% do wallet.set_command(commands.x) %} {% do wallet.add_extra_host("host.docker.internal", "host-gateway") %} {% do wallet.add_storage("/home/monero/wallet", values.storage.wallet) %} {% do perm_container.add_or_skip_action("wallet", values.storage.wallet, perm_config) %} {% for store in values.storage.additional_storage %} {% do wallet.add_storage(store.mount_path, store) %} {% do perm_container.add_or_skip_action(store.mount_path, store, perm_config) %} {% endfor %} {% do wallet.add_port(values.network.wallet_rpc_port) %} {% if perm_container.has_actions() %} {% do perm_container.activate() %} {% do wallet.depends.add_dependency(values.consts.perms_container_name, "service_completed_successfully") %} {% endif %} {{ tpl.render() | tojson }}