Alpine Linuxapk用作它的包管理器,它的安装程序文件是.apk……就像 Android 文件一样。
这些有什么关系吗?如果是,如何?
如果不是,APK 代表什么(Alpine PacKage?),为什么他们为他们的包管理器选择相同的名称,因为这听起来可能令人困惑?网络上没有关于经理姓名的信息。
我正在尝试使用 openjdk 11 构建一个 alpine docker 映像。为此,我正在启动一个 alpine 容器:
docker run -it alpine:3.9 /bin/sh
Run Code Online (Sandbox Code Playgroud)
并运行以下命令:
export JAVA_HOME=/opt/openjdk-11
export PATH=$JAVA_HOME/bin:$PATH
export JAVA_VERSION=11.0.2
export JAVA_URL=https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_linux-x64_bin.tar.gz
export JAVA_SHA256=99be79935354f5c0df1ad293620ea36d13f48ec3ea870c838f20c504c9668b57
set -eux; \
\
wget -O /openjdk.tgz "$JAVA_URL"; \
echo "$JAVA_SHA256 */openjdk.tgz" | sha256sum -c -; \
mkdir -p "$JAVA_HOME"; \
tar --extract --file /openjdk.tgz --directory "$JAVA_HOME" --strip-components 1; \
rm /openjdk.tgz;
Run Code Online (Sandbox Code Playgroud)
在那之后,我可以确认一些事情似乎是正确的:
/ # ls -lah $JAVA_HOME/bin/java
+ ls -lah /opt/openjdk-11/bin/java
-rwxr-xr-x 1 668 668 8.5K Jan 18 05:20 /opt/openjdk-11/bin/java
/ # echo $PATH …Run Code Online (Sandbox Code Playgroud) 我已经使用 Alpine 和一个名为 bowtie2 的工具设置了一个简单的 docker 容器。当我尝试运行时bowtie2-align-s,出现此错误:
sh: ./bowtie2-align-s: not found
Run Code Online (Sandbox Code Playgroud)
但是,ls告诉我该文件在那里。我从 Linux 二进制发行版安装了 bowtie2。我如何判断该发行版是否与 Alpine Linux 兼容?我在 Ubuntu 16.04 上运行 docker 17.09.0-ce。
这是完整的 Dockerfile:
FROM alpine:3.6
ENV BOWTIE2_VERSION 2.2.8
RUN apk add --no-cache \
perl \
wget \
openssl \
ca-certificates \
strace \
&& wget https://downloads.sourceforge.net/project/bowtie-bio/bowtie2/$BOWTIE2_VERSION/bowtie2-$BOWTIE2_VERSION-linux-x86_64.zip \
&& unzip -d /usr/local bowtie2-$BOWTIE2_VERSION-linux-x86_64.zip \
&& rm bowtie2-$BOWTIE2_VERSION-linux-x86_64.zip
Run Code Online (Sandbox Code Playgroud)
我这样测试:
$ sudo docker run -it --rm --security-opt seccomp:unconfined bowtie2-bin sh
/ # /usr/local/bowtie2-2.2.8/bowtie2-align-s --version
sh: /usr/local/bowtie2-2.2.8/bowtie2-align-s: not …Run Code Online (Sandbox Code Playgroud) 这曾经用于设置时区。我在 Alpine 3.9.4 上有一个容器,它可以工作:
RUN apk add --no-cache tzdata
ENV TZ America/Chicago
RUN apk del tzdata
Run Code Online (Sandbox Code Playgroud)
我现在正在使用 Alpine Linux v3.10.3 创建一个 Docker 容器,但它不再工作了。一位用户建议我需要复制到 /etc/localtime:
RUN apk add --no-cache tzdata
ENV TZ America/Chicago
RUN cp /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN apk del tzdata
Run Code Online (Sandbox Code Playgroud)
如果tzdata被删除,这些都不起作用。但是,如果tzdata不删除它们,它们会起作用。为什么是这样?
是否可以列出直接安装的软件包apk add?例如apk add docker, apk add lm-sensors file, 等
运行会apk info列出所有已安装的包(包括已安装的包的依赖项),但我想将此列表缩小到不依赖于其他包的顶级包,以便在另一个系统上重现这些包。
我正在尝试通过标准社区 AMI 在 Amazon AWS EC2 上安装 Alpine Linux (v.3.6)。我提供了我的有效 ssh 密钥,该密钥适用于同一 VPC 中的所有其他实例 (Amazon Linux)。但是,我无法登录到实例。Alpine AWS 的默认用户名是什么?
我的公共 SSH 密钥是否应该像 Amazon Linux、Ubuntu 等一样自动上传到实例中 - 或者是仅用于某些特殊安装的 Alpine Linux AMI,所以我应该使用 Packer 或 smth。创建一个新用户并将我的公钥放在那里?
在哪里可以找到有关 AWS Alpine 社区 AMI 的任何文档?
我尝试使用 gcsfuse 将应用程序源代码存储在 GCP 存储桶上,这是我的 Dockerfile:
ARG VERSION
FROM golang:1.12.5-alpine3.9 as gcsfuse-builder
ENV GOPATH /go
RUN apk --update add git=2.20.1-r0 fuse=2.9.8-r2 fuse-dev=2.9.8-r2 \
&& go get -u github.com/googlecloudplatform/gcsfuse
FROM php:$VERSION as base
ARG REVISION
ENV APP_DIR=/srv/app \
APP_ENV=prod \
APP_FRONT_CONTROLLER=index.php \
APP_LOCALE=fr \
APP_USER=test-user \
APP_USER_GROUP=test \
APP_PORT=8080 \
COMPOSER_ALLOW_SUPERUSER=1 \
NGINX_DIR=/etc/nginx \
NGINX_VERSION=1.14.2-r1 \
PHP_FPM_CONF_DIR=/usr/local/etc/php-fpm.d/ \
SUPERVISORD_CONF_DIR=/etc/supervisor \
SUPERVISOR_VERSION=3.3.4-r1 \
BUILD_SCRIPTS_DIR=/build-scripts \
GOOGLE_APPLICATION_CREDENTIALS=/srv/app/bucket.json
# Supervisord conf to be copied at the end.
COPY docker/prod/php/scripts/*.sh $BUILD_SCRIPTS_DIR/
# Core dependencies installation …Run Code Online (Sandbox Code Playgroud) 因此,我目前正在将 XMPP 服务器与 Signal 网关合并以提高效率(在单独的 VM 中运行每个服务会消耗资源,就像没有人的事一样),并且我需要转换网关的服务脚本以在 XMPP 的 Alpine 上工作(缺少切换)全部交给 Arch),这样我就可以使用常规命令启动和停止并在启动时启动服务。不幸的是,关于 Alpine 的完整文档并不多。这是我当前 Debian 服务器上的内容:
[Unit]
Description=signal-web-gateway daemon
After=network.target
[Service]
PIDFile=/run/signal-web-gateway/pid
User=signal
Group=signal
RuntimeDirectory=signal-web-gateway
WorkingDirectory=/home/signal/
ExecStart=/home/signal/signal -gateway -bind 127.0.0.1:5010
PrivateTmp=true
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
基本上我想知道如何将其转换为 OpenRC (Alpine) 以及将其放在哪里。
使用这个: https: //gitlab.com/morph027/signal-web-gateway
Alpine默认使用ash作为登录shell,我想将其更改为bash。
到目前为止我做了什么:
sudo apk add bashsudo apk add shadow/bin/bash为chsh/etc/passwd包含/bin/bash我的用户的默认登录 shell但这似乎被忽略了。当我登录(在控制台或 ssh 上)时,我总是会进入 ash shell。
我正在尝试将我的项目移至 docker,并且我一直在使用 alpine 变体。这是一个带有 postgres 数据库的 django 项目
这是我安装依赖项的方法:
...
ADD ./requirements.txt /srv/sites/mysite/requirements.txt
RUN echo "http://mirror.leaseweb.com/alpine/edge/testing" >>
/etc/apk/repositories
RUN apk add --no-cache --virtual .build-deps \
build-base postgresql-dev libffi-dev gcc libc-dev linux-headers bash \
geos geos-dev jpeg-dev zlib-dev \
&& pip install -r requirements.txt \
&& find /usr/local \
\( -type d -a -name test -o -name tests \) \
-o \( -type f -a -name '*.pyc' -o -name '*.pyo' \) \
-exec rm -rf '{}' + \
&& runDeps="$( \ …Run Code Online (Sandbox Code Playgroud) 我一直在考虑将我的一台服务器从 Ubuntu 迁移到 Alpine 来托管我的 Web 应用程序。我因为 Docker 而认识 Alpine。使用 Alpine 作为服务器操作系统安全吗?有没有人试过这个?