dockerfile 用dep的Dockerfile golang图像

用dep的Dockerfile golang图像

Dockerfile
FROM golang

WORKDIR ${GOPATH} 

#make sure where is the GOPATH it is
RUN echo ${GOPATH}

COPY . /go/myproject/api

# check dep is already installed before install it
RUN [ -f /usr/local/bin/dep ] && echo 'Dep has ben installed' where dep || \
go get github.com/golang/dep && go install github.com/golang/dep/cmd/dep

RUN dep ensure -v

CMD ['go run', 'main.go']

dockerfile 在Docker中使用Maven运行Spring Boot应用程序

在Docker中使用Maven运行Spring Boot应用程序

mvndocker
docker run -it --rm --name my-maven-project -v "$(pwd)":/usr/src/mymaven -w /usr/src/mymaven maven:3.3-jdk-8 mvn clean install

dockerfile 用于构建基于Golang的应用程序映像的Dockerfile

用于构建基于Golang的应用程序映像的Dockerfile

Dockerfile
FROM golang:1.10
WORKDIR /go/src/github.com/mlabouardy/lambda-oneshot-container
COPY main.go .
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app .

FROM alpine:latest  
RUN apk --no-cache add ca-certificates
WORKDIR /root/
COPY --from=0 /go/src/github.com/mlabouardy/lambda-oneshot-container/app .
CMD ["./app"]

dockerfile Docker容器中的Netcat

Docker容器中的Netcat

Dockerfile
FROM alpine:latest
RUN apk add --no-cache netcat-openbsd
ENTRYPOINT [ "nc" ]

# usage...
# build: docker build -t netcat:latest .
#   server: docker run --rm -p <hostPort>:<containerPort> netcat:latest -l <port>
#   client: docker run --rm netcat:latest <hostname> <remotePort>

dockerfile dockerfile args powershell

args_powershell
FROM microsoft/aspnet
ARG buildarea=production
RUN echo $env:buildarea

dockerfile 使用https://kitchen.ci和https://serverspec.org测试Ansible角色的Dockerfile

使用https://kitchen.ci和https://serverspec.org测试Ansible角色的Dockerfile

Dockerfile
FROM ruby:2.4.4-jessie
LABEL maintainer="Carles San Agustin"

WORKDIR /

RUN echo 'source "https://rubygems.org"\n \
gem "test-kitchen"\n \
gem "kitchen-docker"\n \
gem "kitchen-ansible"\n \
gem "net-ssh"\n \
gem "serverspec"\n \
gem "kitchen-verifier-serverspec"\n' \
> /Gemfile

RUN bundle install

# idea taken from https://medium.com/devops-process-and-tools/testing-ansible-playbooks-roles-8992e3eddc2

dockerfile 在Dockerfile中使用服务帐户的GCloud

在Dockerfile中使用服务帐户的GCloud

Dockerfile
# place a copy of the service account key next to this file and rename <gcp_service_account_key>
# build: docker build -t gcloud .
FROM ubuntu:18.04

COPY ./<gcp_service_account_key>.json /saccount_key.json
ENV private_key=/saccount_key.json

# install required packages
RUN apt-get update && apt-get install -y lsb-core curl ssh jq && \
    export CLOUD_SDK_REPO="cloud-sdk-$(lsb_release -c -s)" && \
    echo "deb http://packages.cloud.google.com/apt $CLOUD_SDK_REPO main" | tee -a /etc/apt/sources.list.d/google-cloud-sdk.list && \
    curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - && \
    apt-get update -y && apt-get install google-cloud-sdk -y

# ssh client configuration
RUN export ssh_folder=~/.ssh && \
    mkdir -p $ssh_folder && \
    chmod 700 $ssh_folder && \
    echo "Host *" > $ssh_folder/config && \
    echo "    StrictHostKeyChecking no" >> $ssh_folder/config && \
    chmod 600 $ssh_folder/config

# gcloud service account configuration
RUN export client_email=$(jq '.client_email' $private_key | cut -d "\"" -f 2) && \
    export project_id=$(jq '.project_id' $private_key | cut -d "\"" -f 2) && \
    gcloud auth activate-service-account $client_email --key-file=$private_key --project=$project_id && \
    gcloud compute config-ssh --quiet

# login to instance

dockerfile 我的PyTorch 0.4 Dockerfile

我的PyTorch 0.4 Dockerfile

Dockerfile
# add 7z tar and zip archivers
FROM nvidia/cuda:9.0-cudnn7-devel

# https://docs.docker.com/engine/examples/running_ssh_service/
RUN apt-get update && apt-get install -y openssh-server
RUN mkdir /var/run/sshd
RUN echo 'root:Ubuntu@41' | chpasswd
RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
RUN sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
RUN mkdir ~/.ssh/
RUN touch ~/.ssh/authorized_keys
RUN echo 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDPlILkHRoLnwMS3JlNO94FAYChrW+jGXMxFK5eRmCcBtTJRrV7zyv5mqIBhyJQFiQOqeycttVQP/HTJ9XCwVY0/WK5b45Z6PmfY9PJ5uiLahTCLi8ayoqhDsIWTlWYL03dG7Oz0WEwWQ6BDmSbfS12GEzWQTLqNh7nwsmTXE5503bRtmTre69625gT8c+mgvBOoQfMN1XePxJ14j8h1dVB1Y0geRLJb7yYd4Dl6tnEb3PyGizNVaiVYeBBTx6N/8lvSVA+FYR9mOg3yzYrJ0Aqyj33Oi+jvPqZP16EUhjCukKQWH3IzS1pRvYPCXzPYwvMGvBa00f9GPDccE0eiawH atmyre@Everett' >> ~/.ssh/authorized_keys 


# SSH login fix. Otherwise user is kicked off after login
RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd

ENV NOTVISIBLE "in users profile"
RUN echo "export VISIBLE=now" >> /etc/profile

ENV CONDA_DIR /opt/conda
ENV PATH $CONDA_DIR/bin:$PATH

# writing env variables to /etc/profile as mentioned here https://docs.docker.com/engine/examples/running_ssh_service/#run-a-test_sshd-container
RUN echo "export CONDA_DIR=/opt/conda" >> /etc/profile
RUN echo "export PATH=$CONDA_DIR/bin:$PATH" >> /etc/profile

RUN mkdir -p $CONDA_DIR && \
    echo export PATH=$CONDA_DIR/bin:'$PATH' > /etc/profile.d/conda.sh && \
    apt-get update && \
    apt-get install -y wget git libhdf5-dev g++ graphviz openmpi-bin nano && \
    wget --quiet https://repo.continuum.io/miniconda/Miniconda3-4.2.12-Linux-x86_64.sh && \
    echo "c59b3dd3cad550ac7596e0d599b91e75d88826db132e4146030ef471bb434e9a *Miniconda3-4.2.12-Linux-x86_64.sh" | sha256sum -c - && \
    /bin/bash /Miniconda3-4.2.12-Linux-x86_64.sh -f -b -p $CONDA_DIR && \
    ln /usr/lib/x86_64-linux-gnu/libcudnn.so /usr/local/cuda/lib64/libcudnn.so && \
    ln /usr/lib/x86_64-linux-gnu/libcudnn.so.7 /usr/local/cuda/lib64/libcudnn.so.7 && \
    ln /usr/include/cudnn.h /usr/local/cuda/include/cudnn.h  && \
    rm Miniconda3-4.2.12-Linux-x86_64.sh

ENV NB_USER keras
ENV NB_UID 1000

RUN echo "export NB_USER=keras" >> /etc/profile
RUN echo "export NB_UID=1000" >> /etc/profile

RUN echo "export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH" >> /etc/profile
RUN echo "export CPATH=/usr/include:/usr/include/x86_64-linux-gnu:/usr/local/cuda/include:$CPATH" >> /etc/profile
RUN echo "export LIBRARY_PATH=/usr/local/cuda/lib64:/lib/x86_64-linux-gnu:$LIBRARY_PATH" >> /etc/profile
RUN echo "export CUDA_HOME=/usr/local/cuda" >> /etc/profile
RUN echo "export CPLUS_INCLUDE_PATH=$CPATH" >> /etc/profile
RUN echo "export KERAS_BACKEND=tensorflow" >> /etc/profile

RUN useradd -m -s /bin/bash -N -u $NB_UID $NB_USER && \
    mkdir -p $CONDA_DIR && \
    chown keras $CONDA_DIR -R  

USER keras

RUN  mkdir -p /home/keras/notebook

# Python
ARG python_version=3.6

RUN conda install -y python=${python_version} && \
    pip install --upgrade pip && \
    pip install tensorflow-gpu && \
    conda install Pillow scikit-learn notebook pandas matplotlib mkl nose pyyaml six h5py && \
    conda install theano pygpu bcolz && \
    pip install keras kaggle-cli lxml opencv-python requests scipy tqdm visdom && \
    conda install pytorch=0.4.0 cuda90 -c pytorch && \
    conda install torchvision -c pytorch && \
    pip install imgaug && \
    conda clean -yt

ENV LD_LIBRARY_PATH /usr/local/cuda/lib64:/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
ENV CPATH /usr/include:/usr/include/x86_64-linux-gnu:/usr/local/cuda/include:$CPATH
ENV LIBRARY_PATH /usr/local/cuda/lib64:/lib/x86_64-linux-gnu:$LIBRARY_PATH
ENV CUDA_HOME /usr/local/cuda
ENV CPLUS_INCLUDE_PATH $CPATH
ENV KERAS_BACKEND tensorflow

WORKDIR /home/keras/notebook

EXPOSE 8888 6006 22 8097

CMD jupyter notebook --port=8888 --ip=0.0.0.0 --no-browser

dockerfile Docker PHP

Docker PHP

README.md
docker build -t manniru/php1 .
docker run -d --name php1 manniru/php1

docker run -p 80:80 --name php1 -it manniru/php1 /bin/bash


docker build -t manniru/php1 .
docker run -d -p 8080:80 manniru/php1
# open http://192.168.99.100:8080/
Dockerfile
FROM php
RUN echo "<?php echo 'Hello World';" > /tmp/index.php
CMD ["php", "-S", "0.0.0.0:80", "-t", "/tmp"]

dockerfile VRS Docker图像

vrs.yml
vrs:
  container_name: vrs
  image: manniru/vrs
  ports:
    - "80:8080"
  volumes:
    - ./html:/home
Dockerfile
FROM drupal:fpm-alpine

RUN apk update && apk add nodejs
RUN npm i -g http-server

# By Mannir
RUN apk add nano

RUN mkdir -p /var/www/html

WORKDIR /var/www/html
ADD ./html /var/www/html
CMD ["http-server"]

EXPOSE 8080