2017-10-15 12 views
2

ドッキングコンテナにasp.netコアアプリケーションをデプロイしようとしています。アプリケーションはdotnet new mvcを使用して作成されます。アプリケーションが稼動しているときはすべて、ドッキングできない環境になります。ただし、ドッカーコンテナでは、ブラウザはwwwrootフォルダ内のすべての静的ファイルをロードできません。 はここにここで私は、いくつかのミスをしたasp.netコアアプリケーションがドッカーコンテナで実行されているときにUseStaticFilesが動作しない

FROM microsoft/aspnetcore 
RUN mkdir -p /app 
COPY app/* /app/ 
WORKDIR /app 
CMD ["dotnet","/app/app.dll"] 
+0

をサポートするために修正すべきですか?おそらくそれは間違ったdirにマップされます – ingvar

答えて

0

dockerfileがStartup.cs

public class Startup 
{ 
    public Startup(IConfiguration configuration) 
    { 
     Configuration = configuration; 
    } 

    public IConfiguration Configuration { get; } 

    // This method gets called by the runtime. Use this method to add services to the container. 
    public void ConfigureServices(IServiceCollection services) 
    { 
     services.AddMvc(); 
    } 

    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. 
    public void Configure(IApplicationBuilder app, IHostingEnvironment env) 
    { 
     if (env.IsDevelopment()) 
     { 
      app.UseDeveloperExceptionPage(); 
     } 
     else 
     { 
      app.UseExceptionHandler("/Home/Error"); 
     } 

     app.UseStaticFiles(); 

     app.UseMvc(routes => 
     { 
      routes.MapRoute(
       name: "default", 
       template: "{controller=Home}/{action=Index}/{id?}"); 
     }); 
    } 
} 

}ここで

されているのProgram.cs

public class Program 
{ 
    public static void Main(string[] args) 
    { 
     BuildWebHost(args).Run(); 
    } 

    public static IWebHost BuildWebHost(string[] args) => 
     WebHost.CreateDefaultBuilder(args) 
      .UseStartup<Startup>() 
      .UseKestrel() 
      .UseContentRoot(Directory.GetCurrentDirectory()) 
      .UseWebRoot(Path.Combine(Directory.GetCurrentDirectory(),"wwwroot")) 
      .UseUrls("http://*:5050") 
      .Build(); 
} 

ですドッカーファイル。次のように

ソースディレクトリにコピーすることができませんでし以下のコマンドは、再帰的に

COPY app/* /app/ 

代わりに、COPYコマンドは `Directory.GetCurrentDirectory()`を返し何再帰

COPY app/ /app/ 
関連する問題