Create post from form with image

I think the problem is with your form tag missing enctype="multipart/form-data" so try changing:

<form method="post" action=""> 

to:

<form method="post" action="" enctype="multipart/form-data"> 

and as a side note, if you want to redirect to the newly created post change:

wp_redirect( 'http://domain.com' );

to:

wp_redirect( get_permalink($post_id));
exit();

Update:
From the comments i understand that want the image to show inside the content, well that is a different thing but not that hard,

change:

if ($attach_id > 0){
            //and if you want to set that image as Post  then use:
            update_post_meta($post_id,'_thumbnail_id',$attach_id);
        }

to:

if ($attach_id > 0){
    $post = get_post($post_id,'ARRAY_A');
    $image = wp_get_attachment_image_src( $attach_id );
    $image_tag = '<img src="'.$image[0].'" width="'.$image[1].'" height="'.$image[2].'" />';

    //add image above the content
    $post['post_content'] = $image_tag . $post['post_content'];

    //add image under the content
    //$post['post_content'] = $post['post_content'] . $image_tag;

    $post_id =  wp_update_post( $post );
}