Closed edyu closed 8 years ago
I tried both setting the environment variable and exporting it and just prepend MIX_ENV=prod to "mix release".
I have no problem running "MIX_ENV=prod mix dep.get" or "MIX_ENV=prod mix compile".
Is there any way to see your project files, like mix.exs
for the project?
defmodule Nestweb.Mixfile do
use Mix.Project
def project do
[app: :nestweb,
version: "0.0.1",
elixir: "~> 1.0",
elixirc_paths: elixirc_paths(Mix.env),
compilers: [:phoenix] ++ Mix.compilers,
build_embedded: Mix.env == :prod,
start_permanent: Mix.env == :prod,
aliases: aliases,
deps: deps]
end
# Configuration for the OTP application.
#
# Type `mix help compile.app` for more information.
def application do
[mod: {Nestweb, []},
applications: [:phoenix, :phoenix_html, :cowboy, :logger,
:phoenix_ecto, :mariaex, :httpoison]]
end
# Specifies which paths to compile per environment.
defp elixirc_paths(:test), do: ["lib", "web", "test/support"]
defp elixirc_paths(_), do: ["lib", "web"]
# Specifies your project dependencies.
#
# Type `mix help deps` for examples and options.
defp deps do
[{:phoenix, "~> 1.1"},
{:phoenix_ecto, "~> 2.0"},
{:mariaex, ">= 0.0.0"},
{:phoenix_html, "~> 2.3"},
{:phoenix_live_reload, "~> 1.0", only: :dev},
{:httpoison, "~> 0.8.0"},
{:poison, "~> 1.5"},
{:cowboy, "~> 1.0"},
{:exrm, "~> 1.0.0-rc7"}]
end
# Aliases are shortcut or tasks specific to the current project.
# For example, to create, migrate and run the seeds file at once:
#
# $ mix ecto.setup
#
# See the documentation for `Mix` for more info on aliases.
defp aliases do
["ecto.setup": ["ecto.create", "ecto.migrate", "run priv/repo/seeds.exs"],
"ecto.reset": ["ecto.drop", "ecto.setup"]]
end
end
Thank you!
Can you check whether MIX_ENV=prod mix release --verbosity=verbose
provides helpful information?
@edyu You have to compile the project with MIX_ENV=prod
before you can use the task in that environment. Could you give that a try?
@vadim-moz same error @bitwalker yes i have and that completed but same error when I do MIX_ENV=prod mix release
I have to say I'm not sure there's much I can do about this one, the error is coming from Mix itself being unable to find the release task, and if you've run MIX_ENV=prod do deps.get, deps.compile, compile
before running MIX_ENV=prod mix release
and it's still not working, I'm at a loss as to how that could be. You could try adding exrm as a git dependency instead just to see if that works, but the hex package has been working fine for myself and others now for some time.
What version of Erlang and Elixir by the way?
Can you try to delete all _build
directories in your project? I've see mix
being confused sometimes. (My guess is, erlang
uses file timestamps rounded to 1 second, and sometimes change is not detected properly.)
Might be worth deleting deps
and re-running mix deps.get
as well.
@bitwalker %uname -a Linux 4.2.0-23-generic #28-Ubuntu SMP Sun Dec 27 17:47:31 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
%erl -version Erlang (ASYNC_THREADS,HIPE) (BEAM) emulator version 7.0
%elixir --version Elixir 1.1.0-dev
$ ls brunch-config.js _build config deps lib mix.exs mix.lock node_modules package.json priv README.md rel test web $ rm -rf _build $ find . -name "_build" $ ls brunch-config.js config deps lib mix.exs mix.lock node_modules package.json priv README.md rel test web $ rm -rf deps
$ MIX_ENV=prod mix deps.get
Hex was built against against Elixir v1.0.5 and you are running v1.1.0-dev, please run mix local.hex
to update to a matching version
Running dependency resolution
$ MIX_ENV=prod mix deps.compile ==> connection Compiled lib/connection.ex Generated connection app ==> poolboy (compile) Compiled src/poolboy_worker.erl Compiled src/poolboy_sup.erl Compiled src/poolboy.erl lib/decimal.ex:356: warning: variable coef is unused lib/decimal.ex:357: warning: variable adjust is unused lib/decimal.ex:358: warning: variable signals is unused ==> decimal Compiled lib/decimal.ex Generated decimal app ==> idna (compile) Compiled src/idna.erl Compiled src/idna_ucs.erl Compiled src/idna_unicode_data.erl Compiled src/punycode.erl Compiled src/idna_unicode.erl Compiled src/idna_unicode_data1.erl Compiled src/idna_unicode_data2.erl ==> ssl_verify_hostname (compile) Compiled src/ssl_verify_hostname.erl ==> poison Compiled lib/poison.ex Compiled lib/poison/decoder.ex Compiled lib/poison/parser.ex Compiled lib/poison/encoder.ex Generated poison app ==> getopt (compile) Compiled src/getopt.erl ==> providers (compile) Compiled src/provider.erl Compiled src/providers_topo.erl Compiled src/providers.erl ==> mimerl (compile) Compiled src/mimerl.erl ==> erlware_commons (compile) Compiled src/ec_dictionary.erl Compiled src/ec_vsn.erl Compiled src/ec_semver.erl Compiled src/ec_plists.erl Compiled src/ec_compile.erl Compiled src/ec_semver_parser.erl Compiled src/ec_file.erl Compiled src/ec_date.erl Compiled src/ec_lists.erl Compiled src/ec_orddict.erl Compiled src/ec_dict.erl Compiled src/ec_assoc_list.erl Compiled src/ec_cmd_log.erl Compiled src/ec_talk.erl Compiled src/ec_gb_trees.erl Compiled src/ec_cnv.erl Compiled src/ec_rbdict.erl Compiled src/ec_git_vsn.erl ==> ranch (compile) Compiled src/ranch_transport.erl Compiled src/ranch_app.erl Compiled src/ranch_acceptor.erl Compiled src/ranch.erl Compiled src/ranch_server.erl Compiled src/ranch_acceptors_sup.erl Compiled src/ranch_tcp.erl Compiled src/ranch_ssl.erl Compiled src/ranch_protocol.erl Compiled src/ranch_listener_sup.erl Compiled src/ranch_sup.erl Compiled src/ranch_conns_sup.erl ==> bbmustache (compile) Compiled src/bbmustache.erl ==> relx (compile) Compiled src/rlx_util.erl Compiled src/rlx_depsolver_culprit.erl Compiled src/rlx_goal.erl Compiled src/rlx_dscv_util.erl Compiled src/rlx_goal_utils.erl Compiled src/relx.erl Compiled src/rlx_rel_discovery.erl Compiled src/rlx_topo.erl Compiled src/rlx_app_discovery.erl Compiled src/rlx_prv_rel_discover.erl Compiled src/rlx_app_info.erl Compiled src/rlx_prv_archive.erl Compiled src/rlx_prv_app_discover.erl Compiled src/rlx_release.erl Compiled src/rlx_prv_relup.erl Compiled src/rlx_depsolver.erl Compiled src/rlx_config.erl Compiled src/rlx_prv_overlay.erl Compiled src/rlx_prv_release.erl Compiled src/rlx_cmd_args.erl Compiled src/rlx_state.erl Compiled src/rlx_prv_assembler.erl ==> exrm Compiled lib/exrm/config.ex Compiled lib/exrm/plugin.ex Compiled lib/exrm/deps.ex Compiled lib/exrm/utils/logger.ex Compiled lib/exrm/plugins/appups.ex Compiled lib/exrm/utils/utils.ex Compiled lib/mix/tasks/release.plugins.ex Compiled lib/mix/tasks/release.clean.ex Compiled lib/exrm/plugins/consolidation.ex Compiled lib/exrm/appups.ex Compiled lib/mix/tasks/release.ex Generated exrm app ==> certifi (compile) Compiled src/certifi.erl Compiled src/certifi_weak.erl Compiled src/certifi_cacerts.erl ==> hackney (compile) Compiled src/hackney_app.erl Compiled src/hackney_manager.erl Compiled src/hackney.erl Compiled src/http/hackney_cookie.erl Compiled src/http/hackney_multipart.erl Compiled src/http/hackney_headers.erl Compiled src/http/hackney_request.erl Compiled src/http/hackney_url.erl Compiled src/http/hackney_date.erl Compiled src/http/hackney_response.erl Compiled src/http/hackney_bstr.erl Compiled src/http/hackney_http.erl Compiled src/hackney_sup.erl Compiled src/metrics/hackney_dummy_metrics.erl Compiled src/hackney_util.erl Compiled src/hackney_trace.erl Compiled src/metrics/hackney_folsom_metrics.erl Compiled src/metrics/hackney_exometer_metrics.erl Compiled src/socket/hackney_tcp_transport.erl Compiled src/socket/hackney_ssl_transport.erl Compiled src/socket/hackney_socks5.erl Compiled src/hackney_stream.erl Compiled src/socket/hackney_pool_handler.erl Compiled src/socket/hackney_http_connect.erl Compiled src/socket/hackney_pool.erl Compiled src/socket/hackney_connect.erl ==> mariaex Compiled lib/mariaex/cache.ex Compiled lib/mariaex/coder.ex Compiled lib/mariaex/connection/tcp.ex Compiled lib/mariaex/structs.ex Compiled lib/mariaex/connection.ex lib/mariaex/messages.ex:269: warning: variable body is unused Compiled lib/mariaex/messages.ex Compiled lib/mariaex/protocol.ex Generated mariaex app ==> ecto Compiled lib/ecto/adapter.ex Compiled lib/ecto/adapter/storage.ex Compiled lib/ecto/adapter/migration.ex Compiled lib/ecto/adapter/transaction.ex Compiled lib/ecto/adapters/connection.ex Compiled lib/ecto/adapters/postgres/connection.ex Compiled lib/ecto/adapters/postgres/datetime.ex Compiled lib/ecto/adapters/sql/query.ex Compiled lib/ecto/application.ex Compiled lib/ecto/data_type.ex Compiled lib/ecto/migration.ex Compiled lib/ecto/migration/runner.ex Compiled lib/ecto/exceptions.ex Compiled lib/ecto/migration/supervisor.ex Compiled lib/ecto/model.ex Compiled lib/ecto/migrator.ex Compiled lib/ecto/model/callbacks.ex Compiled lib/ecto/model/optimistic_lock.ex Compiled lib/ecto/pool.ex Compiled lib/ecto/poison.ex Compiled lib/ecto/pools/poolboy.ex Compiled lib/ecto/pools/poolboy/worker.ex Compiled lib/ecto/pools/sojourn_broker.ex Compiled lib/ecto/pools/sojourn_broker/codel.ex Compiled lib/ecto/pools/sojourn_broker/timeout.ex Compiled lib/ecto/pools/sojourn_broker/worker.ex Compiled lib/ecto/query/api.ex Compiled lib/ecto/adapters/sql.ex Compiled lib/ecto/query.ex Compiled lib/ecto/adapters/postgres.ex Compiled lib/ecto/changeset/relation.ex Compiled lib/ecto/embedded.ex Compiled lib/ecto.ex Compiled lib/ecto/adapters/mysql.ex Compiled lib/ecto/log_entry.ex Compiled lib/ecto/adapters/sql/sandbox.ex Compiled lib/ecto/adapters/mysql/connection.ex Compiled lib/ecto/query/builder/distinct.ex Compiled lib/ecto/query/builder.ex Compiled lib/ecto/query/builder/filter.ex Compiled lib/ecto/query/builder/from.ex Compiled lib/ecto/query/builder/group_by.ex Compiled lib/ecto/query/builder/limit_offset.ex Compiled lib/ecto/query/builder/join.ex Compiled lib/ecto/query/builder/lock.ex Compiled lib/ecto/query/builder/order_by.ex Compiled lib/ecto/query/builder/preload.ex Compiled lib/ecto/query/builder/select.ex Compiled lib/ecto/query/builder/update.ex Compiled lib/ecto/query/inspect.ex Compiled lib/ecto/query/planner.ex Compiled lib/ecto/queryable.ex Compiled lib/ecto/repo/assoc.ex Compiled lib/ecto/repo.ex Compiled lib/ecto/repo/preloader.ex Compiled lib/ecto/repo/supervisor.ex Compiled lib/ecto/repo/schema.ex Compiled lib/ecto/storage.ex Compiled lib/ecto/schema.ex Compiled lib/ecto/type.ex Compiled lib/ecto/repo/queryable.ex Compiled lib/ecto/association.ex Compiled lib/ecto/uuid.ex Compiled lib/ecto/changeset.ex Compiled lib/mix/ecto.ex Compiled lib/mix/tasks/ecto.create.ex Compiled lib/mix/tasks/ecto.drop.ex Compiled lib/mix/tasks/ecto.gen.migration.ex Compiled lib/mix/tasks/ecto.gen.repo.ex Compiled lib/ecto/migration/schema_migration.ex Compiled lib/mix/tasks/ecto.migrate.ex Compiled lib/mix/tasks/ecto.rollback.ex Compiled lib/ecto/date_time.ex Generated ecto app ==> httpoison Compiled lib/httpoison/base.ex Compiled lib/httpoison.ex Generated httpoison app ==> cowlib (compile) Compiled src/cow_http_te.erl Compiled src/cow_http.erl Compiled src/cow_qs.erl Compiled src/cow_cookie.erl Compiled src/cow_http_hd.erl Compiled src/cow_date.erl Compiled src/cow_spdy.erl Compiled src/cow_multipart.erl Compiled src/cow_mimetypes.erl ==> cowboy (compile) Compiled src/cowboy_middleware.erl Compiled src/cowboy_sub_protocol.erl Compiled src/cowboy_app.erl Compiled src/cowboy.erl Compiled src/cowboy_router.erl Compiled src/cowboy_spdy.erl Compiled src/cowboy_bstr.erl Compiled src/cowboy_http.erl Compiled src/cowboy_websocket_handler.erl Compiled src/cowboy_handler.erl Compiled src/cowboy_http_handler.erl Compiled src/cowboy_loop_handler.erl Compiled src/cowboy_sup.erl Compiled src/cowboy_static.erl Compiled src/cowboy_websocket.erl Compiled src/cowboy_protocol.erl Compiled src/cowboy_clock.erl Compiled src/cowboy_rest.erl Compiled src/cowboy_req.erl ==> plug Compiled lib/plug.ex Compiled lib/plug/adapters/cowboy.ex Compiled lib/plug/builder.ex Compiled lib/plug/conn/adapter.ex Compiled lib/plug/conn/cookies.ex Compiled lib/plug/conn/status.ex Compiled lib/plug/conn/query.ex Compiled lib/plug/conn/unfetched.ex Compiled lib/plug/conn/utils.ex Compiled lib/plug/conn/wrapper_error.ex Compiled lib/plug/adapters/test/conn.ex Compiled lib/plug/adapters/translator.ex Compiled lib/plug/adapters/cowboy/handler.ex Compiled lib/plug/crypto.ex Compiled lib/plug/crypto/key_generator.ex Compiled lib/plug/crypto/message_encryptor.ex Compiled lib/plug/crypto/message_verifier.ex Compiled lib/plug/conn.ex Compiled lib/plug/csrf_protection.ex Compiled lib/plug/error_handler.ex Compiled lib/plug/debugger.ex Compiled lib/plug/head.ex Compiled lib/plug/html.ex Compiled lib/plug/logger.ex Compiled lib/plug/exceptions.ex Compiled lib/plug/method_override.ex Compiled lib/plug/parsers.ex Compiled lib/plug/parsers/json.ex Compiled lib/plug/parsers/urlencoded.ex Compiled lib/plug/request_id.ex Compiled lib/plug/router.ex Compiled lib/plug/router/utils.ex Compiled lib/plug/session.ex Compiled lib/plug/session/store.ex Compiled lib/plug/session/ets.ex Compiled lib/plug/session/cookie.ex Compiled lib/plug/ssl.ex Compiled lib/plug/mime.ex Compiled lib/plug/supervisor.ex Compiled lib/plug/test.ex Compiled lib/plug/static.ex Compiled lib/plug/parsers/multipart.ex Compiled lib/plug/adapters/cowboy/conn.ex Compiled lib/plug/upload.ex Generated plug app ==> phoenix_html Compiled lib/phoenix_html/engine.ex Compiled lib/phoenix_html.ex Compiled lib/phoenix_html/format.ex Compiled lib/phoenix_html/tag.ex Compiled lib/phoenix_html/link.ex Compiled lib/phoenix_html/safe.ex Compiled lib/phoenix_html/form_data.ex Compiled lib/phoenix_html/form.ex Generated phoenix_html app ==> phoenix warning: the dependency phoenix requires Elixir "~> 1.0.2 or ~> 1.1" but you are running on v1.1.0-dev Compiled lib/mix/tasks/compile.phoenix.ex Compiled lib/mix/tasks/phoenix.digest.ex Compiled lib/mix/phoenix.ex Compiled lib/mix/tasks/phoenix.gen.channel.ex Compiled lib/mix/tasks/phoenix.gen.json.ex Compiled lib/mix/tasks/phoenix.gen.html.ex Compiled lib/mix/tasks/phoenix.gen.secret.ex Compiled lib/mix/tasks/phoenix.routes.ex Compiled lib/mix/tasks/phoenix.server.ex Compiled lib/mix/tasks/phoenix.gen.model.ex Compiled lib/phoenix.ex Compiled lib/phoenix/code_reloader/proxy.ex Compiled lib/phoenix/code_reloader.ex Compiled lib/phoenix/code_reloader/server.ex Compiled lib/phoenix/config.ex Compiled lib/phoenix/controller/pipeline.ex Compiled lib/phoenix/digester.ex Compiled lib/phoenix/endpoint.ex Compiled lib/phoenix/endpoint/adapter.ex Compiled lib/phoenix/endpoint/cowboy_websocket.ex Compiled lib/phoenix/endpoint/handler.ex Compiled lib/phoenix/endpoint/cowboy_handler.ex Compiled lib/phoenix/endpoint/instrument.ex Compiled lib/phoenix/endpoint/server.ex Compiled lib/phoenix/endpoint/watcher.ex Compiled lib/phoenix/naming.ex Compiled lib/phoenix/exceptions.ex Compiled lib/phoenix/pubsub.ex Compiled lib/phoenix/pubsub/gc.ex Compiled lib/phoenix/param.ex Compiled lib/phoenix/pubsub/pg2.ex Compiled lib/phoenix/pubsub/local_supervisor.ex Compiled lib/phoenix/pubsub/pg2_server.ex Compiled lib/phoenix/router.ex Compiled lib/phoenix/router/resource.ex Compiled lib/phoenix/router/scope.ex Compiled lib/phoenix/router/route.ex Compiled lib/phoenix/router/console_formatter.ex Compiled lib/phoenix/socket/message.ex Compiled lib/phoenix/pubsub/local.ex Compiled lib/phoenix/socket.ex Compiled lib/phoenix/router/helpers.ex Compiled lib/phoenix/channel.ex Compiled lib/phoenix/controller.ex Compiled lib/phoenix/channel/server.ex Compiled lib/phoenix/endpoint/render_errors.ex Compiled lib/phoenix/controller/logger.ex Compiled lib/phoenix/supervisor.ex Compiled lib/phoenix/socket/transport.ex Compiled lib/phoenix/template.ex Compiled lib/phoenix/template/engine.ex Compiled lib/phoenix/template/eex_engine.ex Compiled lib/phoenix/template/exs_engine.ex Compiled lib/phoenix/template/html.ex Compiled lib/phoenix/token.ex Compiled lib/phoenix/transports/long_poll.ex Compiled lib/phoenix/test/conn_test.ex Compiled lib/phoenix/transports/serializer.ex Compiled lib/phoenix/transports/long_poll_serializer.ex Compiled lib/phoenix/test/channel_test.ex Compiled lib/phoenix/transports/long_poll_server.ex Compiled lib/phoenix/transports/websocket_serializer.ex Compiled lib/phoenix/transports/websocket.ex Compiled lib/phoenix/view.ex Generated phoenix app ==> phoenix_ecto Compiled lib/phoenix_ecto.ex Compiled lib/phoenix_ecto/json.ex Compiled lib/phoenix_ecto/plug.ex Compiled lib/phoenix_ecto/html.ex Generated phoenix_ecto app
$ MIX_ENV=prod mix compile Compiled lib/nestweb.ex Compiled lib/nestweb/models.ex Compiled lib/nestweb/loudnest.ex Compiled lib/nestweb/repo.ex Compiled web/channels/user_socket.ex Compiled web/web.ex Compiled web/controllers/elm_controller.ex Compiled web/router.ex Compiled web/controllers/page_controller.ex Compiled web/views/elm_view.ex Compiled lib/nestweb/endpoint.ex Compiled web/views/error_view.ex Compiled web/views/layout_view.ex Compiled web/views/page_view.ex Generated nestweb app Consolidated Poison.Decoder Consolidated Poison.Encoder Consolidated Plug.Exception Consolidated Phoenix.HTML.FormData Consolidated Phoenix.HTML.Safe Consolidated Phoenix.Param Consolidated Ecto.Queryable Consolidated Ecto.DataType Consolidated List.Chars Consolidated Inspect Consolidated Range.Iterator Consolidated Collectable Consolidated Enumerable Consolidated String.Chars Consolidated Access Consolidated protocols written to _build/prod/consolidated
@vadim-moz @bitwalker $ MIX_ENV=prod mix release --verbosity=verbose \ (Mix) The task release could not be found
I'm going to start another fresh ubuntu 15.10 box and install erlang and elixir and start from scratch to see if I get a different result too.
@edyu You got a warning about the wrong version of hex being used in the output up there, can you run mix local.hex --force
to install the latest version of hex, then rm -rf deps && mix do deps.get, deps.compile, compile
once more?
So...I think it could be a combination of the versions that I use erlang 7.0 and elixir 1.1.0-dev. I now have completely blown away those deb packages and instead installed esl-erlang 7.2 and elixir 1.2.0 and surprise, MIX_ENV=prod mix release NOW works!
@bitwalker @vadim-moz thank you for your help. Since those are all old versions of erlang and elixir, I don't think this is a bug for exrm then. I'm closing this. Thank you again!
@edyu Glad a fresh install fixed it! I wouldn't classify Elixir 1.1 as old by any means, since 1.2 just came out, but since it was a -dev
release, there might have been some bugs. ERTS 7.0 is Erlang 18.0 just for future reference :)
If anyone is still having this issue, I was able to solve it by adding distillery to the deps in mix.exs
.
Somehow exrm was not included (its being replaced)
defp deps do
[...
{:distillery, "~> 1.0"}]
end
distillery - A pure Elixir implementation of release packaging functionality for the Erlang VM
Still facing the same issue. Added distillery, on elixir 1.6.1, but it didn't help.
This is on Ubuntu 15.10. Somehow I can run mix release but if I run it with "MIX_ENV=prod mix release", I would get the error: \ (Mix) The task release could not be found