Bygg releaser med Mix Release
Skapa fristående och distributionsklara releaser av din Elixir-applikation med `mix release`.
Bygg releaser med Mix Release är en gratis lektion i Elixir och Phoenix: skalbar backendutveckling på CoddyKit. Detta är lektion 1 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Elixir och Phoenix: skalbar backendutveckling, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Elixir och Phoenix: skalbar backendutveckling innehåller totalt 4 lektioner.
Välkomna till Elixir-releaser
När ni utvecklar ett Elixir-program kör ni det ofta med mix run --no-halt. Det fungerar utmärkt under utvecklingen, men är inte idealiskt i produktion.
För driftsättning behöver vi ett fristående paket som kan köras självständigt utan att byggverktyget Mix eller ens Elixirs källkod behöver finnas på målsystemet. Det är här releaser kommer in i bilden!
Varför `mix run` inte räcker
Att köra ett program med mix run har några nackdelar i produktion:
- Det kräver hela byggverktyget Mix och projektets källkod.
- Det använder som standard konfigurationen för utvecklingsmiljön.
- Uppstarten kan ta längre tid eftersom beroenden måste kompileras och läsas in.
- Det saknar ordentligt stöd för att köra bakgrundsprocesser som daemoner.
Introduktion till `mix release`
mix release skapar en OTP-release. Se den som ett komplett, fristående paket med ert Elixir-program och dess beroenden.
Den innehåller Erlang VM, er kompilerade kod och alla skript som behövs för att starta, stoppa och hantera programmet som en fristående tjänst.
Fördelar med att använda releaser
Releaser erbjuder flera viktiga fördelar:
- Fristående: Servern behöver inte ha Mix eller Elixir installerat.
- Snabbare uppstart: Förkompilerad och optimerad för produktion.
- Produktionsklar: Utformad för att köras som daemon och övervakas.
- Hot code swapping: Stöd för att uppgradera körande system utan driftstopp (avancerat).
Skapa er första release
För att skapa en release måste projektet först ha en supervisor. De flesta Phoenix-projekt och projekt som skapats med mix new my_app --sup har redan en sådan.
Kör sedan helt enkelt kommandot mix release. Då kompileras projektet och dess beroenden för produktionsmiljön.
mix new my_release_app --sup
cd my_release_app
mix deps.get
mix releaseUtforska releasestrukturen
När ni har kört mix release hittar ni er release i _build/prod/rel/your_app_name/.
Där finns katalogen bin med ett skript för att hantera programmet, lib med alla kompilerade beroenden och releases med versionsspecifika filer.
my_release_app/
├── _build/
│ └── prod/
│ └── rel/
│ └── my_release_app/
│ ├── bin/
│ │ └── my_release_app (start/stop script)
│ ├── lib/
│ ├── releases/
│ └── erts-...
├── config/
├── lib/
└── mix.exsKör det releasade programmet
För att starta programmet från en release använder ni det genererade skriptet i katalogen bin. Ni kan starta det i förgrunden eller som en daemon.
I en produktionsmiljö startar ni det vanligtvis i bakgrunden.
# Start in foreground (for testing)
_build/prod/rel/my_release_app/bin/my_release_app start_iex
# Start as daemon (production)
_build/prod/rel/my_release_app/bin/my_release_app start
# Stop a running daemon
_build/prod/rel/my_release_app/bin/my_release_app stopKörningskonfiguration med `runtime.exs`
Vid driftsättning i produktion behöver ni ofta konfigurera programmet utifrån dess miljö (till exempel databasuppgifter och API-nycklar).
mix release använder config/runtime.exs, som körs efter att releasen har byggts och innan programmet startar. Det passar perfekt för att läsa miljövariabler.
# config/runtime.exs
import Config
config :my_release_app,
database_url: System.get_env("DATABASE_URL"),
api_key: System.get_env("API_KEY")Uppgraderingar och nedgraderingar (avancerat)
En av de mest kraftfulla funktionerna i OTP-releaser är möjligheten att genomföra hot code upgrades. Det innebär att ni kan uppdatera ett körande program med ny kod utan att stoppa det, vilket ger driftsättningar utan driftstopp.
Även om detta är ett avancerat ämne lägger `mix release` grunden för det genom att paketera programmet på ett sätt som möjliggör versionshantering och patchning.
Kontroll av releasefördelar
Vilka av följande är viktiga fördelar med att använda mix release för att driftsätta ett Elixir-program?
Sammanfattning: Redo för driftsättning!
Ni har lärt er att mix release är standardmetoden för att paketera Elixir-program för produktion. Det skapar ett fristående och optimerat paket som inte är beroende av Mix-verktygskedjan.
Releaser ger snabbare uppstart, robust stöd för daemoner och avancerade funktioner som hot code upgrades. Tillsammans med config/runtime.exs utgör de en kraftfull och flexibel lösning för driftsättning.
Lär dig Elixir med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 12
- Lektioner
- 48
Vanliga frågor
Är lektionen ”Bygg releaser med Mix Release” gratis?
Ja – hela texten till ”Bygg releaser med Mix Release” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Elixir och Phoenix: skalbar backendutveckling, kan Ni uppgradera till CoddyKit PRO. Kursen i Elixir och Phoenix: skalbar backendutveckling innehåller totalt 4 lektioner.
Vad lär jag mig i ”Bygg releaser med Mix Release”?
Skapa fristående och distributionsklara releaser av din Elixir-applikation med `mix release`. Ni övar på Elixir och Phoenix: skalbar backendutveckling med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Elixir och Phoenix: skalbar backendutveckling?
Du behöver inga förkunskaper. Utbildningen i Elixir och Phoenix: skalbar backendutveckling på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.
Hur lång tid tar lektionen ”Bygg releaser med Mix Release”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Elixir och Phoenix: skalbar backendutveckling-lektionen?
Ja. Varje Elixir och Phoenix: skalbar backendutveckling-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Bygg releaser med Mix Release
- Containerisering med Docker
- Strategier för molndistribution
- Driftsättningar utan driftstopp och hot upgrades