小编Gre*_*dot的帖子

复制Dockerfile中的文件,没有这样的文件或目录?

我在root(〜)文件夹中设置了Dockerfile.我文件的前三行看起来像这样:

COPY file1 /root/folder/
COPY file2 /root/folder/
COPY file3 /root/folder/
Run Code Online (Sandbox Code Playgroud)

但它为每一行返回以下错误:

没有相应的文件和目录

这些文件与我的Dockerfile位于同一目录中,我也在docker build - < Dockerfile终端的同一目录中运行该命令.

这到底我做错了什么?

docker

51
推荐指数
10
解决办法
8万
查看次数

在Docker-Compose中禁用一个容器的日志记录

我有一个使用Docker compose启动的Web应用程序,我想要禁用所有日志记录(或者至少将其打印到syslog而不是文件).

当我的Web应用程序工作时,它可以在启动时快速生成11GB的日志文件,因此这会非常快地占用我的磁盘空间.

我知道普通的docker有运行命令的日志选项,但在我使用的Docker Compose中

Docker-组成

在应用程序文件夹中启动我的应用程序.我如何在我的情况下启用此功能?我没有在网上找到具体案例.

docker docker-compose

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

在Docker Compose中更改postgres容器服务器端口

我正在尝试使用Docker compose在远程服务器上部署第二个数据库容器.这个postgresql服务器在端口5433上运行,而不是第一个postgresql容器使用的5432.

当我设置应用程序时,我收到此错误输出:

web_1  | django.db.utils.OperationalError: could not connect to server: Connection refused
web_1  |    Is the server running on host "db" (172.17.0.2) and accepting
web_1  |    TCP/IP connections on port 5433?
Run Code Online (Sandbox Code Playgroud)

我的docker撰写文件是:

db:
  image: postgres:latest
  environment:
    POSTGRES_PASSWORD: route_admin
    POSTGRES_USER: route_admin
  expose:
    - "5433"
  ports:
    - "5433"
  volumes:
    - ./backups:/home/backups



web:
  build: .
  command:  bash -c "sleep 5 && python -u application/manage.py runserver 0.0.0.0:8081"
  volumes:
    - .:/code
  ports:
    - "81:8081"
  links:
    - db
  environment:
    - PYTHONUNBUFFERED=0
Run Code Online (Sandbox Code Playgroud)

我觉得问题必须是服务器实例上的postgresql.conf文件,将端口设置为5432,导致我的应用程序尝试连接时出错.是否有一种简单的方法可以使用compose文件中的命令更改端口,而不是使用卷来替换文件?

我正在使用官方的postgresql容器来完成这项工作.

postgresql docker docker-compose

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

完成此Pandas作业的方法比使用Apply for large数据集更快?

我有一个由两个不同对象组成的CSV文件的大型数据集:"object_a"和"object_b".这些实体中的每一个都具有数字"tick"值.

Type,       Parent Name, Ticks
object_a,   4556421,     34
object_a,   4556421,     0
object_b,   4556421,     0
object_a,   3217863,     2
object_b,   3217863,     1
......
Run Code Online (Sandbox Code Playgroud)

每个对象共享一个"父名称"值,因此在大多数情况下,每个对象中的一个将共享一个"父名称"值,但情况并非总是如此.

这个数据集有两个目标:

  • 在父名称下提取所有object_a,其中i)有> 1个object_a和; ii)object_a有0个刻度,但另一个object_a有> 0个刻度.即只是零刻度的那个

  • 在父名称下提取所有object_b,其中i)有> = 1 object_a和; ii)object_b有0个刻度,但object_a有> 0个刻度

我的第一种方法是为两个任务分别使用两个函数,以块的形式读取CSV文件(通常大小为1.5GB),并根据父名称将提取的行输出到另一个csv文件...

def objective_one(group_name, group_df):

   group_df = group_df[group_df['Type'] == 'object_a']

   if len(group_df) > 1:

       zero_tick_object_a = group_df[group_df['Ticks'] == 0]

       if len(zero_click_object_a) < len(group_df):

           return zero_click_object_a

       else:

           return pd.DataFrame(columns=group_df.columns)
   else:

       return pd.DataFrame(columns=group_df.columns)



def objective_two(group_name, group_df):

   object_a_in_group_df = group_df[group_df['Type'] == 'object_a']
   object_b_has_no_clicks_in_group_df = group_df[(group_df['Type'] == 'object_b') & (group_df['Ticks'] == 0)] …
Run Code Online (Sandbox Code Playgroud)

python pandas

15
推荐指数
1
解决办法
335
查看次数

在Elastic Beanstalk负载均衡器中使用保留实例

我正在运行Elastic Beanstalk负载均衡应用程序一年.我正在寻找降低成本的方法,并发现我可能会使用保留的ec2实例而不是我们当前使用的按需实例.目前,我的负载均衡器使用两个实例.

我想进行切换但不确定该过程是如何实际完成的.在做任何事之前,我希望一切都清楚.

根据我的理解,如果我保留两个与我的应用程序中使用的相同类型的实例(t2.large with Linux)用于相同的可用区域(eu-west1b中的1个,eu-west1c中的另一个)我可以使用这些实例对于负载均衡器.我目前部署的相同类型的实例是否会立即属于保留实例的速率?我是否必须重建我的环境并构建两个与保留的实例相匹配的新实例?

amazon-ec2 amazon-elastic-beanstalk aws-reserved-instances

14
推荐指数
2
解决办法
3634
查看次数

获取字节数组的CRC校验和并将其添加到该字节数组

我有这个字节数组:

static byte[] buf = new byte[] { (byte) 0x01, (byte) 0x04, (byte)0x00, (byte)0x01,(byte)0x00, (byte) 0x01};
Run Code Online (Sandbox Code Playgroud)

现在,该字节数组的CRC校验和应该是0x60,0x0A.我希望Java代码重新创建此校验和,但我似乎无法重新创建它.我试过crc16:

static int crc16(final byte[] buffer) {
    int crc = 0xFFFF;

    for (int j = 0; j < buffer.length ; j++) {
        crc = ((crc  >>> 8) | (crc  << 8) )& 0xffff;
        crc ^= (buffer[j] & 0xff);//byte to int, trunc sign
        crc ^= ((crc & 0xff) >> 4);
        crc ^= (crc << 12) & 0xffff;
        crc ^= ((crc & 0xFF) << 5) & …
Run Code Online (Sandbox Code Playgroud)

java checksum modbus crc

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

从 Python2 到 Python3 时的 b64encode

我正在运行一些在 Python2 到 Python3 上运行的代码,但它有一些问题。我有一个带格式的字符串:

auth_string = '{client_id}:{client_secret}'.format(client_id=client_id, client_secret=client_secret)
Run Code Online (Sandbox Code Playgroud)

并将其作为“标题”的一部分传入:

headers = {
            'Accept': 'application/json',
            'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
            'Authorization': 'Basic ' + b64encode(auth_string)
        }
Run Code Online (Sandbox Code Playgroud)

当我运行代码时,我收到此错误:

TypeError: 'str' does not support the buffer interface
Run Code Online (Sandbox Code Playgroud)

经过一番研究,这是因为 Python3 将字符串视为 unicode 对象,您需要先将它们转换为字节。没问题,我将行更改为:

'Authorization': 'Basic ' + b64encode(auth_string.encode(encoding='utf_8'))
Run Code Online (Sandbox Code Playgroud)

但现在我收到一个新错误:

TypeError: Can't convert 'bytes' object to str implicitly
Run Code Online (Sandbox Code Playgroud)

我到底错过了什么?

python encoding python-3.x

7
推荐指数
1
解决办法
3168
查看次数

多个线程在Python中写入相同的CSV

我是Python的多线程新手,目前正在编写一个附加到csv文件的脚本.如果我要将多个线程提交给一个concurrent.futures.ThreadPoolExecutor将行附加到csv文件的行.如果附加是这些线程唯一与文件相关的操作,我该怎么做才能保证线程安全?

我的代码的简化版本:

with concurrent.futures.ThreadPoolExecutor(max_workers=3) as executor:
    for count,ad_id in enumerate(advertisers):

        downloadFutures.append(executor.submit(downloadThread, arguments.....))
        time.sleep(random.randint(1,3)) 
Run Code Online (Sandbox Code Playgroud)

我的线程类是:

def downloadThread(arguments......):

                #Some code.....

                writer.writerow(re.split(',', line.decode()))
Run Code Online (Sandbox Code Playgroud)

我应该设置一个单独的单线程执行程序来处理写入,还是担心我是否只是附加?

编辑:我应该详细说明,当写入操作发生时,下一次附加文件之间的分钟数差别很大,我只关心在测试我的脚本时没有发生这种情况,我宁愿为此加以覆盖.

python csv multithreading executor

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

使用awsebcli部署Elastic Beanstalk应用程序时出现"拒绝操作"错误

我正在尝试首次将Django应用程序部署到Elastic Beanstalk.我一直在这里这里寻求帮助的两个教程,但我遇到了教程似乎没有涉及的问题.

到目前为止,我遵循的步骤是将awsebcli安装到Python3.4虚拟环境中并cd到我的项目目录.然后我打电话eb init.然后提示我输入我的访问密钥.我已将它们保存到文本文件中,因此我只需将我的密钥(确保没有尾随空格)复制并粘贴到终端中.

问题是错误被抛回:

错误:操作被拒绝.我们计算的请求签名与您提供的签名不匹配.检查您的AWS Secret Access Key和签名方法.有关详细信息,请参阅服务文档

奇怪的是,在我输入部署的区域编号后,在后续尝试中会弹出错误.但它仍然提示我输入键:

错误:当前用户没有正确的权限.原因:操作被拒绝.我们计算的请求签名与您提供的签名不匹配.检查您的AWS Secret Access Key和签名方法.有关详细信息,请参阅服务文档

以下是完整输出eb init --debug:

e$ eb init -- debug

Select a default region
1) us-east-1 : US East (N. Virginia)
2) us-west-1 : US West (N. California)
3) us-west-2 : US West (Oregon)
4) eu-west-1 : EU (Ireland)
5) eu-central-1 : EU (Frankfurt)
6) ap-south-1 : Asia Pacific (Mumbai)
7) ap-southeast-1 : Asia Pacific (Singapore)
8) ap-southeast-2 : Asia …
Run Code Online (Sandbox Code Playgroud)

python django amazon-ec2 amazon-web-services amazon-elastic-beanstalk

6
推荐指数
1
解决办法
3060
查看次数

将大型 CSV 文件按组均匀拆分为较小的 CSV 文件的更快方法?

我确信有更好的方法,但我还是一片空白。我有一个这种格式的 CSV 文件。ID 列已排序,因此所有内容至少都分组在一起:

Text                 ID
this is sample text, AAAA
this is sample text, AAAA
this is sample text, AAAA
this is sample text, AAAA
this is sample text, AAAA
this is sample text2, BBBB
this is sample text2, BBBB
this is sample text2, BBBB
this is sample text3, CCCC
this is sample text4, DDDD
this is sample text4, DDDD
this is sample text5, EEEE
this is sample text5, EEEE
this is sample text6, FFFF
this is sample text6, …
Run Code Online (Sandbox Code Playgroud)

python csv awk file pandas

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