小编Bog*_*byk的帖子

docker compose 孤儿容器警告

如何与孤儿图像时,你有2个独立的项目,并且希望他们能够在同一时间工作,或者至少建立运行docker-compose up -d,而不--remove-orphans标志时,图像已经建成的其他项目。

码头工人撰写文件1:

version: '2'
services:
  applications:
    image: tianon/true
    volumes:
      - ../../:/var/www/vhosts/project1
  nginx:
    build: ./images/nginx
    image: project1/nginx:latest
    ports:
      - "80:80"
    volumes_from:
      -  applications
    networks:
      appnet:
        aliases:
          - project1.app
          - admin.project1.app
  php:
    image: project1/php:latest
    ports:
      - "7778:7778"
    build: 
      context: ./images/php
      dockerfile: Dockerfile
    volumes_from:
      -  applications
    networks:
      -  appnet
  mysql:
    image: project1/mysql:latest
    build: ./images/mysql
    environment:
      MYSQL_ROOT_PASSWORD: secret
    volumes:
      -  mysqldata:/var/lib/mysql
    networks:
      -  appnet
    ports:
      - "33066:3306"
 workspace:
    image: project1/workspace:latest
    build:
      context: ./images/workspace
    volumes_from:
      - applications
    working_dir: /var/www/vhosts/project1 …
Run Code Online (Sandbox Code Playgroud)

containers project docker docker-compose

47
推荐指数
6
解决办法
5万
查看次数

Vue $ route未定义

我正在学习Vue路由器.我想进行程序化导航(没有<router-link>).我的路由器和视图:

 router = new VueRouter({
        routes: [
            {path : '/videos',  name: 'allVideos', component: Videos },
            {path : '/videos/:id/edit', name: 'editVideo', component: VideoEdit },
        ]
    });

    new Vue({
        el: "#app",
        router,
        created: function(){
            if(!localStorage.hasOwnProperty('auth_token')) {
                window.location.replace('/account/login');
            }

            router.push({ name: 'allVideos' })
        }
    })
Run Code Online (Sandbox Code Playgroud)

因此,默认情况下,我推送到'allVideos'路线,在该组件内部,我有一个按钮和方法,可以重定向到''editVideo'按钮:

<button class="btn btn-sm btn-warning" @click="editVideo(video)">Edit</button>
Run Code Online (Sandbox Code Playgroud)

方法:

 editVideo(video) {router.push({ name: 'editVideo', params: { id: video.id } })},
Run Code Online (Sandbox Code Playgroud)

它工作正常.但是当我尝试在VideoEdit组件中获取id时,我得到$route.params.id了错误Uncaught ReferenceError:$ route未定义

也许是因为我现在不使用npm只是Vue和Vuerouter的cdn版本.有解决方案吗 谢谢!

更新:在Vue开发工具中使用btw我在组件中看到了$ route实例

更新:

    var VideoEdit = Vue.component('VideoEdit', {
          template: ` …
Run Code Online (Sandbox Code Playgroud)

javascript vue.js vue-router vue-component vuejs2

29
推荐指数
3
解决办法
3万
查看次数

DDD/分层架构中常量的存储位置

例如,我有一个Media实体,它有MediaType值对象,负责保存/创建媒体类型。存储可能的媒体类型常量列表的最佳位置是什么?首先,我认为它存储在内部,MediaType因为它负责创建类型。但是,如果我在应用程序层或接口层中需要它来验证请求,甚至在查询中该怎么办?

看起来如果我想隔离域,我不能在 中存储常量,因为MediaType我不能在域之外使用它。或者仅在域层中使用常量,并在其他地方对其进行硬编码,这对我来说似乎是不正确的,因为在这种情况下,我们没有一个地方可以更改它。第三个选项是创建单独的常量类,例如并将其存储在域之外(不确定在哪里),但在这种情况下看起来我们根本MediaConstants不需要VO。MediaType

在 DDD 中处理常量的最佳实践是什么?

domain-driven-design constants

8
推荐指数
1
解决办法
3525
查看次数

docker alpine: autoreconf: 无法运行 aclocal: 没有这样的文件或目录

我的项目有 docker alpine 映像,我需要安装gifsicle节点包,但是在安装它时出现错误

Directory: /var/www/abboom-landing/node_modules/gifsicle
Output:
? Response code 404 (Not Found)
  ? gifsicle pre-build test failed
  ? compiling from source
  ? Error: Command failed: /bin/sh -c autoreconf -ivf
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal  --output=aclocal.m4t
Can't exec "aclocal": No such file or directory at /usr/share/autoconf/Autom4te/FileUtils.pm line 326.
autoreconf: failed to run aclocal: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我发现我需要在我的 Dockerfile 中添加autoconflibtool打包,我做了但仍然有同样的错误,我找不到任何有价值的解决方案。

这是我的 docker 文件:

FROM php:7.3-fpm-alpine

ENV …
Run Code Online (Sandbox Code Playgroud)

node.js docker alpine-linux

8
推荐指数
1
解决办法
4669
查看次数

Amazon CloudWatch代理无法正常工作

我正在尝试添加AWS CloudWatch代理以使用教程查看其他指标

我所做的简要回顾:

  1. 创建AIM角色并附加到EC2实例文档(注意:我不仅仅将参数存储用于EC2和cloudwatch之间的通信)
  2. 使用s3链接安装代理
  3. 创建代理配置文件文档
  4. 使用CLI dosc运行代理

但是它仍然无法正常工作,并且在代理日志中,我看到类似的错误

ec2tagger:无法初始化EC2实例标签:+ NoCredentialProviders:链中没有有效的提供者。不推荐使用。有关详细消息传递,请参见aws.Config.CredentialsChainVerboseErrors

在进行谷歌搜索时,我发现与cloudwath的关系不大,仅仅是在“信任关系”配置ec2中在AIM中的角色应该在服务部分中提及,它是:

    {
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "Service": "ec2.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

有什么想法,谢谢!?

amazon-web-services amazon-cloudwatch

6
推荐指数
3
解决办法
4015
查看次数

获取TypeError:在严格模式下可能无法访问“ caller”,“ callee”和“ arguments”属性

我有这样的jQuery代码:

$(document).ready(function() {

  $('.btn-create-post-card').on('click', function(event) {
    event.preventDefault();
    let form_data = new FormData(),
      file = $('.input_file_button');
    // if(!file.val()) {
    //     alert('Please select postcard you want to send')
    // }
    form_data.append("file", file.prop('files')[0]);
    $.ajax({
      url: "/sendEmail",
      dataType: 'multipart/form-data',
      cache: false,
      contentType: false,
      processData: false,
      data: form_data,
      type: 'post',
      success: function(data) {
        alert('OK');
      },
      error: function(error, status) {
        console.log('here');
        console.log(error);
        alert(error);
      }
    });
  });
});
Run Code Online (Sandbox Code Playgroud)

而且我得到了错误:

TypeError:在严格模式函数或
    在Function.remoteFunction(:2:14)上调用它们的参数对象上,可能无法访问“ caller”,“ callee”和“ arguments”属性

控制台输出为: 在此处输入图片说明

如您所见,响应是成功的,并且我之前使用jQuery AJAX调用很多次,并且从未遇到过此类问题。

更新:

控制台输出:

abort: ƒ (e)
    arguments: [Exception: TypeError: 'caller', 'callee', …
Run Code Online (Sandbox Code Playgroud)

javascript ajax jquery

5
推荐指数
2
解决办法
2万
查看次数

终端中 ssh 主机的 mac 自动完成

我已经使用 Ubuntu 一段时间了,我已经为需要通过 ssh 连接的主机配置了 ssh 别名。几天前,我开始使用 mac book,并将所有 ssh 信息(密钥、配置)移至我的 mac 上。但是,当我键入ssh project_并按 TAB 时,它不会显示可能的主机名,甚至当我键入ssh project_sta并按 TAB 时,自动完成功能也不起作用。但是当我输入全名时,就像ssh project_staging它一样,所以我认为配置文件一切正常

我尝试使用原来的 mac 终端和 iterm2,两者都有同样的问题。另外,我问了其他在 mac 上工作的人,ssh 自动补全对他们有用。

我的 ssh 配置:

Host project_staging
        HostName xxxxx
        User xxxx
        Port xxxx

Host project_production
        HostName xxxx
        User xxxxx
        Port xxxx
Run Code Online (Sandbox Code Playgroud)

在现实生活中,我有很多主持人,但很难记住他们所有人。

任何想法,谢谢!

macos ssh

5
推荐指数
1
解决办法
2944
查看次数

无法读取未定义的属性“__isVuelidateAsyncVm”

这是我的codesandbox代码,我这里有一个带有验证的表单和“计算”按钮,该按钮在所有字段都有效之前被禁用。但由于某种原因,我收到了错误 Cannot read property '__isVuelidateAsyncVm' of undefined

javascript vue.js vuetify.js vuelidate

5
推荐指数
1
解决办法
3091
查看次数

Symfony 4 模拟私有服务

我有负责获取各种 api 来收集数据的应用程序。我使用 Codeception 作为我的测试框架,我需要在我的功能测试中模拟 API 客户端类,如下所示:

public function testFetchingNewApps(FunctionalTester $I) {
    $request = new Request(
        SymfonyRequest::METHOD_GET,
        'https://url.com/get'
    );

    $apiClientMock = \Mockery::mock(HttpClientInterface::class);
    $apiClientMock
        ->shouldReceive('send')
        ->with($request)
        ->andReturn(new Response(HttpCode::OK, [], '{"data":"some data"}'))
            ->once();

    $symfony = $this->getModule('Symfony')->grabService('kernel')->getContainer()->set(HttpClientInterface::class,   $apiClientMock);
    $symfony->persistService(HttpClientInterface::class, false);

    $I->runShellCommand('bin/console sync:apos --env=test');
}
Run Code Online (Sandbox Code Playgroud)

但是从 Symfony 4 开始,我们无法访问私有服务来模拟它们,我看到了类似的错误

服务是私有的,您无法替换它。

所以我发现我可以创建ApiClinetMock.php扩展真实ApiCLient.php文件和services_test.yml文件。并且在services_test.ymlI can make ApiClinetMock.phpas a public service 并将其与接口相关联(覆盖接口使用):

#services_test.yml
services:
    _defaults:
        public: true
    Api\Tests\functional\Mock\ApiClientMock: ~
    ApiHttpClients\HttpClientInterface: '@Api\Tests\functional\Mock\ApiClientMock'
Run Code Online (Sandbox Code Playgroud)

现在,当我运行我的测试用例时,我没有看到任何错误,例如

服务是私有的,您无法替换它。

但是我的模拟不起作用并返回真实数据而不是我在模拟中设置的数据,我不知道为什么。

可能的解决方案是覆盖我在 ApiClientMock 中需要的方法以返回我需要的数据,但它仅适用于一个测试用例,但我需要测试各种不同的有效/无效响应。

我知道 Symfony …

symfony mockery codeception symfony4

4
推荐指数
1
解决办法
4603
查看次数

将应用程序逻辑拆分为微服务的最佳方式是什么

我们考虑将整体应用程序转移到微服务,我们正处于研究阶段,因为这是我们第一次体验微服务。

目前我们认为有 3 种类型的微服务:

  1. API网关-使用rpc与域服务通信
  2. 领域服务——封装不同部分逻辑的服务,通过api与网关通信,以及异步事件相互通信。每个人都有自己的数据库
  3. 基础设施服务 - 例如电子邮件、短信等。

到目前为止,我有一些关于如何正确分割域逻辑的问题,一些最佳实践和有用的资源值得赞赏。我还将提供一些逻辑示例以及我认为如何划分它的几种不同方式。

应用程序逻辑:我们有两个用于最终用户前端管理 api 的网关 api。

应用程序是一种社交网络,每个用户都有自己的个人资料,可以通过不同的标准(地理位置、爱好、总兼容性百分比)搜索其他人的添加到朋友、实时聊天、重新计算与其他人的兼容性。该应用程序的主要特点是计算人与人之间兼容性的算法,它考虑了出生日期和地点以及用户注册和更改用户帐户类型时收集的其他一些标准。并且根据用户帐户类型(可以由管理员购买或设置),他具有不同级别的兼容性计算。

所以我们有:用户、个人资料、用户搜索、地理位置、朋友、付款、帐户类型和权限(acl 的类型)、兼容性计算、聊天。

我不确定上一段中列出的每一项是否应被视为独立的微服务,或者例如我可以将用户、个人资料、帐户类型/权限和朋友分组到一个微服务中,并将用户搜索和地理分组到另一个微服务中。

architecture microservices

3
推荐指数
1
解决办法
6565
查看次数