GVKun编程网logo

将命令写入持久存储挂在 Azure App Service for Linux Containers 中(命令保存)

1

想了解将命令写入持久存储挂在AzureAppServiceforLinuxContainers中的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于命令保存的相关问题,此外,我们还将为您介绍关于

想了解将命令写入持久存储挂在 Azure App Service for Linux Containers 中的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于命令保存的相关问题,此外,我们还将为您介绍关于ActionController :: RoutingError没有路由与[GET]“ / vendor / assets / stylesheets / bootstrap.min.css”匹配 app / assets / stylesheets / application.css: app / assets / javascript / application.js: app / views / layout / application.html.erb: app / j、angular j j angular j angular angular service service service j、angular – ng new hello错误:路径“/app/app.module.ts”不存在.路径“/app/app.module.ts”不存在、Azure App Service 和 Web App Bot 之间的区别/连接是什么?的新知识。

本文目录一览:

将命令写入持久存储挂在 Azure App Service for Linux Containers 中(命令保存)

将命令写入持久存储挂在 Azure App Service for Linux Containers 中(命令保存)

如何解决将命令写入持久存储挂在 Azure App Service for Linux Containers 中

我们有一个自定义容器映像,我们正尝试在 Azure 应用服务中运行该映像。该图像有一个 shell 脚本作为入口点,它执行许多命令,其中一些命令与文件 IO 相关。我们需要通过更改配置 WEBSITES_ENABLE_APP_SERVICE_STORAGE = true 来开启持久存储。

容器无法启动,通过查看日志,我们看到进程在以下语句中挂起:

echo "start"
tar cf - --one-file-system -C /usr/src/folder . | tar xf -
echo "end"

该语句基本上是压缩一个文件夹并将其解压缩到 /home/site/wwwroot 目录中,该目录是应用服务中持久化的目录。

我们可以看到日志中记录了 start,但是我们看不到 end,这让我们相信进程挂在 tar 语句上,但是我们正在看到一些文件和文件夹被复制。

如果我们设置 WEBSITES_ENABLE_APP_SERVICE_STORAGE = false 一切都按预期工作......当然,直到容器的 restart,我们失去了所有更改。这就是为什么我们需要持久存储。此外,这在我指向外部卷的本地机器上运行正常。

是什么?

解决方法

经过大量故障排除后,我认为问题是命令执行时间很长,因为文件正在移动到另一个网络位置,并且容器在命令有时间完成之前重新启动。我们更改了 WEBSITES_CONTAINER_START_TIME_LIMIT 以给它足够的时间来完成命令,一切都按预期开始工作。

ActionController :: RoutingError没有路由与[GET]“ / vendor / assets / stylesheets / bootstrap.min.css”匹配 app / assets / stylesheets / application.css: app / assets / javascript / application.js: app / views / layout / application.html.erb: app / j

ActionController :: RoutingError没有路由与[GET]“ / vendor / assets / stylesheets / bootstrap.min.css”匹配 app / assets / stylesheets / application.css: app / assets / javascript / application.js: app / views / layout / application.html.erb: app / j

如何解决ActionController :: RoutingError没有路由与[GET]“ / vendor / assets / stylesheets / bootstrap.min.css”匹配 app / assets / stylesheets / application.css: app / assets / javascript / application.js: app / views / layout / application.html.erb: app / j

我正在Rails上执行此应用程序,页面加载正常,但在控制台中显示:

Started GET "/vendor/assets/stylesheets/bootstrap.min.css" for ::1 at 2020-08-17 09:09:51 -0500

Started GET "/vendor/assets/javascripts/bootstrap.min.js" for ::1 at 2020-08-17 09:09:51 -0500
ActionController::RoutingError (No route matches [GET] 
"/vendor/assets/stylesheets/bootstrap.min.css"):
ActionController::RoutingError (No route matches [GET] 
"/vendor/assets/javascripts/bootstrap.min.js"):

在我的供应商文件夹中,我同时拥有文件夹,javascript和样式表,并分别位于各自的bootsrtrap.min中。 即使在application.html.erb中,我也有以下内容:

  <link href="vendor/assets/stylesheets/bootstrap.min.css" rel="stylesheet">
  <%= csrf_Meta_tags %>
  <%= stylesheet_link_tag    ''application'',media: ''all'',''data-turbolinks-track'': ''reload'' %>
  <%= javascript_include_tag ''application'',''data-turbolinks-track'': ''reload'' %>

</head>
<body>

  <!-- Navigation -->
  <nav>
    <div>
      <ahref="#">Instagram Clone</a>
      <buttontype="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
        <span></span>
      </button>
      <divid="navbarResponsive">
        <ul>
          <li>
            <ahref="#">Home
              <span>(current)</span>
            </a>
          </li>
          <li>
            <ahref="#">About</a>
          </li>
          <li>
            <ahref="#">Services</a>
          </li>
          <li>
            <ahref="#">Contact</a>
          </li>
        </ul>
      </div>
    </div>
  </nav>

  <!-- Page Content -->
  <div>
    <div>
      <div>
        <%= yield %>
      </div>
    </div>
  </div>

  <!-- Bootstrap core JavaScript -->
  <!--<script src="vendor/jquery/jquery.slim.min.js"></script>-->
  <script src="vendor/assets/javascripts/bootstrap.min.js"></script>
    
</body>
</html>

在js和CSS这两个应用程序文件中,我都放置了“ require bootsrtrap.min”,即使该错误仍然出现在控制台中。 会是什么?

解决方法

RoR不使用目录作为文件夹结构指示。因为有资产装载者。您应该将5s或更少的css导入application.css中,并将js导入application.js中。并使用自己的助手添加捆绑文件:

1。用纱安装靴子

yarn add bootstrap @popperjs/core jquery

npm i bootstrap @popperjs/core jquery

栏位不超过5

2。在Assets Pipeline中导入文件

app / assets / stylesheets / application.css:

//...
require bootstrap/dist/css/bootstrap.min
//...

但是,如果需要,我建议使用SCSS并仅导入所需的样式。

app / assets / javascript / application.js:

//...
//= require jquery
//= require @popperjs/core
//= require bootstrap/dist/js/bootstrap.min
//...

3。在布局中导入资产

app / views / layout / application.html.erb:

<head>
...
  <%= stylesheet_link_tag ''application'',media: ''all'' %>
</head>
<body>
...
  <%= javascript_include_tag ''application'' %>
</body>

使用webpack滚动6

2。在application.scss和application.js中导入Bootstrap

app / javascript / stylesheets / application.scss:

//...
import ''bootstrap''
//...

app / javascript / packs / application.js:

import ''jquery''
import ''popper.js''
import ''bootstrap''
import ''../stylesheets/application''

3。在布局中导入捆绑包

<head>
...
  <%= stylesheet_pack_tag ''application'',media: ''all'',''data-turbolinks-track'': ''reload'' %>
  <%= javascript_pack_tag ''application'',''data-turbolinks-track'': ''reload'' %>
</head>

之后,您应该可以在所有应用程序中使用引导程序!

,

[解决方案]因此,在我的HTML(application.html.erb)内部,我有两个对js和css文件的调用:

<script src="assets/javascripts/bootstrap.min.js"></script>
  <%= javascript_include_tag ''application'',''data-turbolinks-track'': ''reload'' %>       
<link href="assets/stylesheets/bootstrap.min.css" rel="stylesheet">
  <%= csrf_meta_tags %>
  <%= stylesheet_link_tag    ''application'',''data-turbolinks-track'': 
  ''reload'' %>

正如您在上面看到的那样,在使用javascript的情况下,我有一个使用脚本的调用,而另一个使用了的调用,两者都造成了问题,所以您只需要评论一个,我就对该脚本进行评论对于我的java文件和CSS文件,一个。 像这样:

  <!--<link href="assets/stylesheets/bootstrap.min.css" rel="stylesheet">-->
    <!--<script src="assets/javascripts/bootstrap.min.js"></script>-->

对我来说,解决了这个问题,我真的尝试了所有事情,这就是解决方案哈哈。

angular j j angular j angular angular service service service j

angular j j angular j angular angular service service service j

我试图写一个业务/茉莉花测试,我想要一些关于mocks如何在一个正在退回承诺的服务上的解释。我解释我的情况:

我有一个控制器,我在其中进行以下调用:

mapService.getMapByUuid(mapUUID,isEditor).then(function(datas){
    fillMapDatas(datas);
});

function fillMapDatas(datas){
    if($scope.elements === undefined){
        $scope.elements = [];
    }
 //Here while debugging my unit test,'datas' contain the promise javascript object instead //of my real reponse.
   debugger;
    var allOfThem = _.union($scope.elements,datas.elements);

    ...

以下是我的服务:

(function () {
'use strict';

var serviceId = 'mapService';

angular.module('onmap.map-module.services').factory(serviceId,[
    '$resource','appContext','restHello','restMap',serviceFunc]);

function serviceFunc($resource,appContext,restHello,restMap) {

    var Maps = $resource(appContext+restMap,{uuid: '@uuid',editor: '@editor'});

    return{          
        getMapByUuid: function (uuid,modeEditor) {
            var maps = Maps.get({'uuid' : uuid,'editor': modeEditor});
            return maps.$promise;
        }
    };
}

})();

最后,这是我的单位测试:

describe('Map controller',function() {
var $scope,$rootScope,$httpBackend,$timeout,createController,MapService,$resource;

beforeEach(module('onmapApp'));

beforeEach(inject(function($injector) {
    $httpBackend = $injector.get('$httpBackend');
    $rootScope = $injector.get('$rootScope');
    $scope = $rootScope.$new();

    var $controller = $injector.get('$controller');

    createController = function() {
        return $controller('maps.ctrl',{
            '$scope': $scope
        });
    };
}));

afterEach(function() {
    $httpBackend.verifyNoOutstandingExpectation();
    $httpBackend.verifyNoOutstandingRequest();
});

var response = {"elements":[1,2,3]};

it('should allow user to get a map',function() {

    var controller = createController();
    $httpBackend.expect('GET','/onmap/rest/map/MY-UUID?editor=true')
        .respond({
            "success": response
        });


// hope to call /onmap/rest/map/MY-UUID?editor=true url and hope to have response as the fillMapDatas parameter
    $scope.getMapByUUID('MY-UUID',true); 

    $httpBackend.flush();
});
});

我真正想要做的是将我的响应对象({“elements:…})作为fillMapDatas函数的datas参数,我不明白如何模拟所有的服务(服务,承诺,然后)

提前感谢您的帮助

所以你想测试,如果你的服务响应如预期的?然后,这是你想要的服务测试。基于单元测试的方法可能如下所示:
var mapService,$q,$rootScope;

beforeEach(inject(function (_mapService_,_$httpBackend_,_$q_,_$rootScope_) {
  mapService = mapService;
  $httpBackend = _$httpBackend_;
  $q = _$q_;
  $rootScope = _$rootScope_;

  // expect the actual request
  $httpBackend.expect('GET','/onmap/rest/map/uuid?editor=true');

  // react on that request
  $httpBackend.whenGET('/onmap/rest/map/uuid?editor=true').respond({
    success: {
      elements: [1,3]
    }
  });
}));

您可以看到,您不需要使用$ inject,因为您可以直接注入所需的服务。如果您想在整个测试中使用正确的服务名称,您可以使用前缀和后缀“_”注入它们,注入()足够聪明地识别出您的意思。我们还为每个it()规范设置$ httpBackend mock。并且我们设置$ q和$ rootScope进行后续处理。

以下是您如何测试您的服务方法返回承诺:

it('should return a promise',function () {
  expect(mapService.getMapUuid('uuid',true).then).tobedefined();
});

由于承诺总是有一个.then()方法,我们可以检查这个属性,看看它是否是一个承诺(当然,其他对象也可以使用这个方法)。

接下来,您可以用适当的价值测试您得到的解决方案的承诺。您可以设置您明确解析的延迟。

it('should resolve with [something]',function () {
  var data;

  // set up a deferred
  var deferred = $q.defer();
  // get promise reference
  var promise = deferred.promise;

  // set up promise resolve callback
  promise.then(function (response) {
    data = response.success;
  });

  mapService.getMapUuid('uuid',true).then(function(response) {
    // resolve our deferred with the response when it returns
    deferred.resolve(response);
  });

  // force `$digest` to resolve/reject deferreds
  $rootScope.$digest();

  // make your actual test
  expect(data).toEqual([something]);
});

希望这可以帮助!

angular – ng new hello错误:路径“/app/app.module.ts”不存在.路径“/app/app.module.ts”不存在

angular – ng new hello错误:路径“/app/app.module.ts”不存在.路径“/app/app.module.ts”不存在

我在角度创建新项目时面临问题.
当我运行新的myapp命令时,我得到以下命令

新的你好

Error: Path "/app/app.module.ts" does not exist.
Path "/app/app.module.ts" does not exist.

谁能帮我吗???

解决方法

这是解决方案

Please make sure that your new folder have write permission

如果您使用的是ubuntu,请将以下命令运行到该文件夹

sudo chmod 644 -R foldername

然后运行新的appname

并检查您的节点版本

Azure App Service 和 Web App Bot 之间的区别/连接是什么?

Azure App Service 和 Web App Bot 之间的区别/连接是什么?

如何解决Azure App Service 和 Web App Bot 之间的区别/连接是什么?

我想了解 Azure 在门户中创建 Web 应用程序机器人时的作用。

部署到 Azure 应用服务 Web 应用的 Azure 机器人服务机器人...

使用 Azure 机器人服务创建机器人后,我获得了以下资源:

资源(网络应用机器人和应用服务)之间有什么区别或联系?

代码应该位于 Web App Bot 中,对吗?在这里,奇迹发生了,发展,渠道等。

用户正在与应用服务交互时抛出一个 HTTP 调用。如果应用服务收到调用会发生什么?

为什么我可以在应用服务而不是Web App Bot上配置CD?

据我所知,Web App Bot 是我发布到应用服务以使其可用的“区域设置”机器人?

有人能帮我弄清楚吗?

解决方法

您的机器人实际上是一个 API,它将托管在应用服务上。因此,如果您的机器人收到许多请求,您将扩展应用服务来处理这些请求。

Web App Bot 是您启用和配置您的机器人将使用的渠道的地方(例如语音直连)

,

让我们分解所涉及的不同组件。

Web Bot(它是一个 Web 应用程序)需要部署到一个网站。那就是应用服务。该网站需要一个网络服务器来运行。这就是应用服务计划。

Web Bot 是您配置的主要部分。其他组件是基础架构组件,您无需过多担心。

今天关于将命令写入持久存储挂在 Azure App Service for Linux Containers 中命令保存的介绍到此结束,谢谢您的阅读,有关ActionController :: RoutingError没有路由与[GET]“ / vendor / assets / stylesheets / bootstrap.min.css”匹配 app / assets / stylesheets / application.css: app / assets / javascript / application.js: app / views / layout / application.html.erb: app / j、angular j j angular j angular angular service service service j、angular – ng new hello错误:路径“/app/app.module.ts”不存在.路径“/app/app.module.ts”不存在、Azure App Service 和 Web App Bot 之间的区别/连接是什么?等更多相关知识的信息可以在本站进行查询。

本文标签:

上一篇外网套接字不工作PHP+JS+Apache+SSL+Linux(套接字网络编程,服务端的操作流程)

下一篇如何在 linux 和 windows 中使用 php 处理文件创建和压缩(linux运行php文件)